資料結構學習日誌之六 佇列

2021-08-17 05:38:15 字數 794 閱讀 7173

和棧相反,佇列是一種先進先出的線性表。它只允許在表的一端插入,而在另一端刪除元素。

佇列也有兩種儲存表示:

用鍊錶表示的佇列簡稱為鏈佇列。乙個鏈佇列顯然需要兩個分別只是隊頭和隊尾的指標,分別稱為頭指標和尾指標才能唯一確定。

佇列和線性表的單鏈表一樣,為了操作方便,佇列也有乙個頭結點,並令頭指標指向頭結點。空煉表則是頭指標和尾指標都指向頭結點。

迴圈佇列:

在佇列的順序儲存結構中,除了用一組位址連續的儲存單元一次存放從佇列頭到佇列尾的元素之外,還需要front和rear兩個指標分別指向佇列頭和佇列尾,為了方便,我們規定front=rear=0為空佇列,當加入新元素的時候,rear+1,當刪除元素時,front+1,操作如圖,

假設當前為佇列分配的最大空間為6,則當佇列處於d的狀態不可再繼續插入新的隊尾元素,不然就會陣列越界,擴大陣列空間又浪費了頭指標之前的空間。這時候可以把佇列設計成乙個環狀的空間,如圖

此時只憑front==rear不能判斷佇列是否為空,原因如圖

此時有兩種解決辦法,一種是設定乙個標誌位以區別佇列是空還是滿;第二個是少用乙個元素空間,約定以「佇列頭指標在佇列尾指標的下一位置上」作為佇列呈「滿」的狀態

資料結構學習筆記(5) 佇列

二 佇列的鏈式儲存實現 佇列是具有一定操作約束的線性表,只能在一端插入,在另一端刪除 佇列是先進先出 fifo 的線性結構 型別名稱 佇列 queue 資料物件集 乙個有0個或者多個元素的有窮線性表 操作集 長度為maxsize的佇列q in queue,佇列元素item in elementtyp...

資料結構學習筆記 3 佇列

型別名 佇列 queue 資料物件集 乙個有0個或多個元素的有窮線性表 操作集 長度為maxsize的堆疊q queue,佇列元素item elementtype 1.生成長度為maxsize的空佇列 queue creatqueue int maxsize 2.判斷佇列q是否已滿 bool isf...

資料結構學習一佇列整理

class myqueue 入隊成功了,返回true public boolean enqueue int x 出隊,成功返回true public boolean dequeue p start return true 獲取隊首元素 public intfront c判斷佇列是否為空 public...