佇列(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 線性表。佇列操作的專有名稱 向佇列中插入乙個元素,稱...