資料結構學習 佇列

2021-09-26 16:32:26 字數 704 閱讀 5983

定義

佇列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。

佇列是一種先進先出的(first in first out)的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q=(a1,a2,……,an),那麼a1就是隊頭元素,而an是隊尾元素。這樣我們就可以刪除時,總是從a1開始,而插入時,總是在佇列最後。這也比較符合我們通常生活中的習慣,排在第乙個的優先出列,最後來的當然排在隊伍最後。

實現同棧一樣,佇列也可以用順序表或者鍊錶實現。

queue() 建立乙個空的佇列

enqueue(item) 往佇列中新增乙個item元素

dequeue() 從佇列頭部刪除乙個元素

is_empty() 判斷乙個佇列是否為空

size() 返回佇列的大小

雙端佇列

雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。

雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。

JS資料結構學習 佇列

佇列是遵循先進先出原則的一組有序的項,與棧的不同的是,棧不管是入棧還是出棧操作都是在棧頂操作,佇列則是在隊尾新增元素,隊頂移除,用乙個圖來表示大概是這樣事的 用乙個更形象的例子就是 排隊服務,總是先排隊的人會先接受服務,當然不考慮插隊的情況 與棧的建立類似,首先建立乙個表示佇列的函式,然後定義乙個陣...

JS資料結構學習 佇列

佇列是遵循先進先出原則的一組有序的項,與棧的不同的是,棧不管是入棧還是出棧操作都是在棧頂操作,佇列則是在隊尾新增元素,隊頂移除,用乙個圖來表示大概是這樣事的 用乙個更形象的例子就是 排隊服務,總是先排隊的人會先接受服務,當然不考慮插隊的情況 與棧的建立類似,首先建立乙個表示佇列的函式,然後定義乙個陣...

JS資料結構學習 佇列

佇列是遵循先進先出原則的一組有序的項,與棧的不同的是,棧不管是入棧還是出棧操作都是在棧頂操作,佇列則是在隊尾新增元素,隊頂移除,用乙個圖來表示大概是這樣事的 用乙個更形象的例子就是 排隊服務,總是先排隊的人會先接受服務,當然不考慮插隊的情況 與棧的建立類似,首先建立乙個表示佇列的函式,然後定義乙個陣...