佇列是一種操作受限的線性表,特點是「先進先出」,其限制在於允許在表的一端進行插入,稱之為隊尾(rear),新元素進隊稱為進隊;在表的另一端進行刪除隊頭(front),從佇列中刪除元素稱為出隊。
而順序隊作為佇列的一種儲存方式,常被運用,但是為了解決順序佇列的「假溢位」現象(順序隊中,是引入兩個指標,且兩個指標最終會達到陣列的末端,雖然隊中已沒有元素,但還是無法讓元素入隊),我們引入了迴圈佇列,即將陣列弄成乙個環,讓兩指標繞著環走,這樣永遠不會出現兩者來到盡頭卻無路可走的情況,具體過程如下:
演算法詳情
#include
#include
#define maxsize 20
typedef
struct
//初始化佇列演算法
void initqueue(sqqueue &qu)
//判斷隊空
int isempty(sqqueue qu)
//進隊演算法
int enqueue(sqqueue &qu,int x)
//出隊演算法
int dequeue(sqqueue &qu,int &x)
int main()
迴圈佇列的操作
佇列和鍊錶 堆疊一樣都是一種線性結構。只不過佇列的操作限定在兩端,只能夠在隊頭和隊尾進行操作。它的特性是先進先出,在隊尾進隊頭出。佇列的物理結構包括順序儲存結構和鏈式儲存結構,也就是我們常說的順序佇列和鏈式佇列。這裡就說一下順序佇列,順序儲存結構要預先分配記憶體,最好能知道佇列的最大長度,在順序佇列...
迴圈佇列操作
1.首先分配迴圈佇列的位址空間,用q表示,分配好頭指標 尾指標。int init queue q,m,rear,front,s int q int m int rear int front int s 2.往佇列中加入成員資料 用 s判斷佇列是否滿?如果不滿資料進佇列,尾指標移動乙個單位 void ...
迴圈佇列的基本操作
一 迴圈佇列的基本概念。佇列是線性表的一種,相對於棧的先進後出 filo 佇列是先進先出的 fifo 因此只能在一端輸入 隊尾rear 在另一端輸出 隊頭front 順序佇列的隊頭指向當前佇列第乙個元素的位置,隊尾指向當前元素的下乙個位置的下乙個位置,但是當隊滿時不能入棧,存在問題 設陣列長度為m,...