為了方便起見,約定:初始化建空隊時,令
front=rear=0,
當隊空時:front=rear
當隊滿時:front=rear 亦成立
因此只憑等式front=rear無法判斷隊空還是隊滿。 有兩種方法處理上述問題:
(1)另設乙個標誌位以區別佇列是空還是滿。
(2)少用乙個元素空間,約定以「佇列頭指標front在隊尾指標rear的下乙個位置上」作為佇列「滿」狀態的標誌。即:
隊空時: front=rear
隊滿時: (rear+1)%maxsize=front
front指向隊首元素,rear指向隊尾元素的下乙個元素。
普通佇列,迴圈佇列以及鏈佇列的相關操作
佇列,一種限定性的線性表。它只允許在表一端進行插入,而在表的另一端進行刪除操作。基於此,我們定義了乙個資料結構,包含首尾指標 class queue 置空佇列時 將rear front 1 public static queue initemptyqueue 在不考慮隊列為空的情況下,出佇列頭指標f...
佇列 迴圈佇列
迴圈佇列是乙個大小確定的特殊佇列,它的特殊體現在迴圈,之前提到的普通佇列,我們是用鍊錶來實現的,在這裡,由於迴圈佇列是乙個長度確定的佇列,所以我們可以拿順序表來實現。迴圈佇列的操作與普通佇列類似,不過不同的地方在於當rear走到capacity 1並且front在0號元素位置的時候,當此時再有元素入...
迴圈佇列 622 設計迴圈佇列
設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為環形緩衝器。迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在佇列前面仍有空間。但是使用...