二、迴圈隊
鏈式隊允許在一端插入,另一端刪除的表叫做隊,或佇列。
隊尾(rear):允許插入的一端
隊頭(front):允許刪除的一端
first和last:分別是指向隊頭元素和隊尾元素進隊和出隊
特點:
順序對基本用法:首尾指標法
尾指標後置:尾指標指是last指向隊尾的後乙個元素,元素載入last指標位置。first指向隊頭。
首指標fisrt前置:前指標是first指向隊頭的前一位置。last指向隊尾。
情況1:在程式執行期間,如果要求進隊的元素總量不超過陣列長度m,不會出現隊滿的情況。
情況2:在程式執行期間,需要僅對處理的元素總和為m個,但任何時刻,隊中的元素數目始終小於m,仍可使用長度為m的陣列儲存(不會發生隊滿)。
特點:重複使用已退隊元素所佔儲存單元
注意迴圈佇列使用first和last+1時是使用模m加操作
first=
(first+1)
%mlast=
(last+1)
%m
隊空狀態:頭尾指標相等,等於0至m-1之間任一值(可進不可出)
隊滿狀態:頭尾指標相等,等於0至m-1之間任一值(可出不可進)
因此不能靠頭尾指標是否相等判斷空和滿
少用乙個單元處理法:
隊滿狀態:first==last
隊滿狀態:(last+1)%m==first
計算佇列長度公式:(last-first+m)%m
m為表長
int
addq
(int q,
int first,
int&last,
int x)
int
addq
(int q,
int first,
int&last,intx)
鏈式隊可採用:單向加頭鍊錶結構
進隊時:將新結點插在表尾處,last移向新結點。
出隊時:將隊頭元素所佔結點作為新的頭結點,釋放原來的頭結點。
隊空:first和last指標同時指向頭結點作為隊空的判斷條件。
int
asddq
(ptr &last,
int x)
int
sdelq
(ptr &first,ptr last,
int&x)
資料結構與演算法 6 佇列
引導 今天我們進入最後一章資料結構的學習 佇列。通過前面幾篇的學習,我們已經了解到了陣列,鍊錶,棧等資料結構。資料結構就是堆特定問題進行抽象話的東西,內容並不多。後面就開始介紹利用這些基礎的資料結構加上演算法來解決特定的問題。佇列佇列和棧都是抽象的資料結構,是乙個操作受限的線性表。它的特點就是先進先...
資料結構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 ...