佇列的特點是先進先出。在佇列的儲存過程中,不僅使用了一組位址連續的儲存單元存放從佇列頭到佇列尾的元素,而且還附設了兩個指標front和rear,分別指示佇列頭元素及佇列尾元素的位置。
佇列操作示意圖(出自嚴蔚敏版資料結構)
對鍊錶的增加是通過移動rear指標,鍊錶的刪除時通過移動front的移動。通過這兩個指標實現佇列的先進先出。
迴圈佇列是將頭尾連線起來(出自嚴蔚敏版資料結構)
隊空時,front、rear指標指在同乙個元素位置。隊滿時rear指標的下一位時front。增加、刪除指標移動與佇列一致。
**實現:
#include
#define maxq 4
typedef struct
squeue;
/**操作介面**/
void prin_1()
/**建立佇列**/
squeue creatqueue(squeue q)
/**入佇列**/
squeue initqueue(squeue q,int e)
else
}/**出佇列**/
squeue outqueue(squeue q)
}/**取佇列首元素**/
int getop(squeue q,int a)
}/**計算佇列長度**/
int l_queue(squeue q)
}/**輸出全部佇列元素**/
void prinqueue(squeue q)
else
printf("\n");}}
int main(void)
}return 0;
}執行結果:
迴圈佇列實現(C語言)
背景 生活中有很多佇列的影子,比如打飯排隊,買火車票排隊問題等,可以說與時間相關的問題,一般都會涉及到佇列問題 從生活中,可以抽象出佇列的概念,佇列就是乙個能夠實現 先進先出 的儲存結構。佇列分為鏈式佇列和靜態佇列 靜態佇列一般用陣列來實現,但此時的佇列必須是迴圈佇列,否則會造成巨大的記憶體浪費 鏈...
mysql迴圈佇列 C語言實現 迴圈佇列
include include include typedef struct queue int pbase 陣列 int front 頭 int rear 尾 rear不存放資料,所以rear前面的是最後乙個資料 queue void init queue queue pq bool full q...
迴圈佇列的實現(C語言)
迴圈佇列 vs2010 除錯 include include include define max size 6 define true 1 define false 0 define overflow 0 define ok 1 define error 0 typedef struct seq ...