java中的鏈式佇列

2021-08-19 21:15:46 字數 822 閱讀 3889

所謂鏈式佇列就是用節點儲存佇列,對於佇列的特點我們就不過多介紹,不過值得注

意的是,鏈隊不需要預先分配記憶體,也不會出現隊滿。

如果我們以鏈頭為隊頭的話:

出隊的時間複雜度為o(1),但入隊的複雜度卻是o(n)

同樣如果以鏈頭為隊尾的話:

出隊的時間複雜度為o(n),但入隊的時間複雜度是o(1)

為了是出隊與入隊的時間複雜度都為o(1)我們分別在鏈頭鏈尾做兩個標誌節點,

然後採用

尾插的方法

初始化佇列

class linkqueue

public entry(int val)

} private entry front = null;

private entry rear = null;

private int usedsize = 0;//鏈式佇列中的有效資料個數

尾插元素

public void inserttail(int val)else

this.usedsize++;

}

出隊

public void pop()else if(this.front ==this.rear )else

this.usedsize--;

}

輸出

public void show()

}

在程式設計中我們的時間複雜度是比較重要的一點,我們常選擇以空間換取時間來優化代

碼。新手入門,如有錯誤,請多多指教。

Java佇列 鏈式儲存實現

佇列介面 public inte ce queue 鍊錶介面 public inte ce node 隊列為空丟擲該異常 public class queueemptyexception extends runtimeexception 單鏈表的定義 public class slnode impl...

Java 實現佇列(一)之 鏈式佇列

佇列的定義和結構 佇列是一種特殊的線性表,其特性體現在佇列只允許在表尾插入資料元素,在表頭刪除元素,所以佇列是一種操作受限的線性表,具有先進先出的特點。允許進行插入的一端稱為隊尾,允許進行刪除的一端稱為隊首。佇列也分為順序和鏈式兩種儲存結構。定義介面 inte ce queue定義介面 class ...

Java實現迴圈佇列和鏈式佇列

佇列的定義 佇列是一種只允許一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為稱為隊尾,刪除的一段是隊頭。想象你去排隊購買車票時,排著乙個很長的隊,排在最前面的人買完票走了,這個操作就稱為出隊操作,而在佇列的後面又來乙個人排在後面,這個操作就稱為入隊操作。乙個普通的佇列 對於乙個普通...