所謂鏈式佇列就是用節點儲存佇列,對於佇列的特點我們就不過多介紹,不過值得注
意的是,鏈隊不需要預先分配記憶體,也不會出現隊滿。
如果我們以鏈頭為隊頭的話:
出隊的時間複雜度為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實現迴圈佇列和鏈式佇列
佇列的定義 佇列是一種只允許一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為稱為隊尾,刪除的一段是隊頭。想象你去排隊購買車票時,排著乙個很長的隊,排在最前面的人買完票走了,這個操作就稱為出隊操作,而在佇列的後面又來乙個人排在後面,這個操作就稱為入隊操作。乙個普通的佇列 對於乙個普通...