大話資料結構 04 3 佇列

2022-08-18 01:42:15 字數 1593 閱讀 1736

1. 定義(也是一種線性表)

2. 抽象資料型別

3. 迴圈佇列

(1)順序儲存的不足

設乙個佇列的元素數為n,為其建立乙個大於n的陣列,在隊頭刪除元素(下表0),在隊為新增元素(下標最大處),此時會引起兩個問題:

「1」每次在隊頭刪除元素,若要保證下標始終為0,需要每刪乙個元素,陣列所有元素整體向前移動。時間複雜度為o(0)

「2」 若每次在隊頭刪除元素,不向前移動剩餘元素,則在隊尾新增元素至陣列的最後一位時,元素不能再新增(產生陣列越界錯誤),但實際上佇列的前部還有儲存單元。這種現象稱為假溢位。

因此提出迴圈佇列

(2)迴圈佇列定義

「1」解決假溢位的辦法是:後面滿了,就再從頭開始,即頭尾相接的迴圈。這種順序儲存結構稱為迴圈佇列。

「2」3.1.2 中提出的問題:

「3」定義佇列空:rear==front

「4」定義u佇列滿(兩種方法):

method1:由於佇列滿也是rear==front,因此當佇列中rear==front時,無法確定是佇列空還是滿

method2:(佇列滿時還有乙個空餘單元)常用

即如下情況,均已隊滿:

不允許出現:

「5」第二種情況下:設佇列的最大尺寸是queuesize

(3)迴圈佇列**:

4. 佇列的鏈式儲存結構(鏈佇列)

「1」鏈佇列的鏈式結構:

「2」入隊操作(在鍊錶結尾插入結點)

「3」出隊操作

大話資料結構筆記4 2佇列

佇列是只允許在一端進行插入操作,另一端進行刪除操作的線性表,佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端稱為隊頭。抽象資料型別 對於長度為n的佇列,順序儲存則需要建立 大於n的陣列,佇列元素儲存在陣列前n個元素 此時 入隊操作...

資料結構5 佇列

5.1簡介 佇列 queue 和堆疊一樣是一種有序鍊錶,屬於抽象資料型別。不同在於是先進先出 first in,first out,fifo 堆疊只需要乙個top指標指向堆疊頂端即可,但是佇列必須使用front和rear兩個指標分別指向佇列的前端和尾端。基本操作 1 create 建立空佇列 2 a...

資料結構(二) 佇列

一 佇列定義 佇列是限定在一端進行插入,另一端進行刪除特殊線性表。二 佇列基本操作 入隊出隊 三 佇列例題 1.例1 舞伴配對問題 分析 這一題是一道經典的取模運算,每一次將編號往前加一位,到達n就取模。include include include include int main return ...