資料結構和演算法之美 09 佇列

2021-10-25 09:25:42 字數 630 閱讀 1696

佇列(queue)

先進者先出,這就是典型的「佇列」

ps:無論順序佇列還是鏈式佇列,隊首指標指向佇列中第乙個元素,隊尾指標指向佇列的最後乙個元素的下乙個位置。入隊時,現將元素入隊,再將隊尾指標後移一位。

作為一種非常基礎的資料結構,佇列的應用也非常廣泛,特別是一些具有某些額外特性的佇列,比如迴圈佇列、阻塞佇列、併發佇列。它們在很多偏底層系統、框架、中介軟體的開發中,起著關鍵性的作用。比如高效能佇列 disruptor、linux 環形快取,都用到了迴圈併發佇列。

用資料實現的佇列。佇列需要兩個指標:乙個是 head 指標,指向隊頭;乙個是 tail 指標,指向隊尾。支援從隊首刪除元素和從隊尾插入元素的操作。

用陣列實現的佇列當tail==n(陣列大小)時,需要在入隊操作中進行資料搬移,迴圈佇列可以很好的解決這個問題。

隊滿條件:tail == n

隊空條件:head == tail

隊滿條件 : (tail+1)%n=head

隊空條件:head == tail

《資料結構與演算法之美》06 佇列

一 概念 佇列 先進者先出。與棧一樣,也是一種受限的線性表,同樣有兩個基本操作 入隊和出隊。二 佇列實現 佇列有兩種實現方式 順序佇列和鏈式佇列。順序佇列 用陣列實現的佇列叫作順序佇列。需要兩個指標 head指標和 tail 指標,分別指向隊頭和隊尾。隨著入隊和出隊操作,head和 tail 會移到...

基礎資料結構和演算法 5 佇列

1.佇列是什麼?佇列是一種只能從表的一端存資料另一端取資料且遵循fifo 先進先出 原則的線性儲存結構。通常只會對佇列執行以下兩種操作 資料元素進佇列的過程稱為 入隊 出佇列的過程稱為 出隊 佇列與棧的比較 2.佇列怎麼用?佇列一般用來處理與等待相關的處理。3.佇列怎麼實現?考慮到每次出隊和入隊都要...

資料結構與演算法(13) 佇列

定義 佇列是一種只能在一端插入 隊尾 在另一端刪除 隊首 的有序線性表。佇列的第乙個插入的元素也是第乙個被刪除的元素。所以,佇列是一種先進先出 fifo,first in first out 或後進後出 lilo,last in last out 線性表。佇列操作的專有名稱 向佇列中插入乙個元素,稱...