陣列模擬佇列

2022-08-11 09:21:11 字數 811 閱讀 4848

原題鏈結

陣列模擬佇列和陣列模擬棧其實很類似,都是用乙個陣列來儲存元素,用指標表示當前可以操作的位置。

區別就是棧只能在棧頂進行操作,所以只需要有乙個top指標指向棧頂。

而佇列可以在隊頭和隊尾都進行操作(出隊、入隊),所以需要兩個指標headtail指向隊頭和隊尾。

如果有元素入隊,則tail加一,指向新元素。

如果要出隊,則head加一,指向原來佇列的第二個元素,這個元素就是現在的對頭。

具體**如下:

#includeusing namespace std;

const int n = 1e5 + 5;

int q[n], head, tail; //用陣列q模擬佇列,head和tail分別指向隊頭和隊尾

void init()

void push(int x)

void pop()

int query()

string empty() else

}int main() else if(op == "empty") else if(op == "query") else if(op == "pop") }}

陣列模擬佇列

1.佇列本身是有序列表,若使用陣列的結構來儲存佇列的資料,則佇列陣列的宣告如下圖,其中 maxsize 是該隊 列的最大容量。2.因為佇列的輸出 輸入是分別從前後端來處理,因此需要兩個變數 front 及 rear 分別記錄佇列前後端的下標,front 會隨著資料輸出而改變,而 rear 則是隨著資...

陣列模擬佇列

指標位置 front 指向佇列的第乙個元素,也就是說front就是 陣列的第乙個元素。front的初始值 0。rear 指向佇列的最後乙個元素的後乙個位置.因為希望空出 乙個空間做為約定。rear 的初始值 0。判空條件if front rear 佇列滿判斷條件if rear maxsize 1 有...

陣列模擬佇列

佇列是乙個有序列表,可以用陣列或是鍊錶來實現。遵循先入先出的原則。即 先存入佇列的資料,要先取出。後存入的要後取出 檢視佇列頭資訊 trycatch exception e break case e 退出 scanner.close loop false break default break sy...