[C語言] 使用陣列(Array) 實作資料結構的佇列(Queue)
佇列(Queue)加入(Push)與刪除(Pop)資料在不同端(front & tail),就像排隊買票一樣的道理。可以參考上一篇的介紹 [C語言] 以鏈結串列(Linked List) 實作資料結構的佇列(Queue),這次使用陣列(Array) 實作佇列。
佇列的基本操作,如下所示:
1. Push(data):在尾端加入新資料
2. Pop:從前端取出資料
3. getFront:回傳最舊的資料
4. getTail:回傳最新的資料
5. IsEmpty:檢查Queue是否是空的
用陣列Array) 實作佇列(Queue):
#include <stdio.h>
#include <stdlib.h>
int queue[MAXQ];
int front = -1;
int tail =-1;
int size = 0;
int main() {
for(int i =0; i<5;i++){
size+=1;
Push(rand()%100);
}
printf("佇列最前面的資料為:%d\n",getFront());
printf("佇列最後面的資料為:%d\n",getTail());
printf("佇列的總數為:%d\n\n",getSize());
while(!isempty()){
printf("佇列刪除的資料為:%d\n",pop());
}
return 0;
}
void Push(int a){
if(tail==MAXQ)
printf("佇列已滿");
else
queue[++tail] = a;
}
int Pop(){
return queue[++front];
}
int getFront(){
return queue[front+1];
}
int getSize(){
return size;
}
int getTail(){
return queue[tail];
}
int isempty(){
if(front==tail)
return 1;
else
return 0;
}
程式會依序印出:
佇列最前面的資料為:83
佇列最後面的資料為:93
佇列刪除的資料為:83
佇列刪除的資料為:86
佇列刪除的資料為:77
佇列刪除的資料為:15
佇列刪除的資料為:93
可以看看底下示意圖:
▲ push完資料
延伸閱讀:
臉書FB標記不到人? 簡單教你如何TAG好友
【高蛋白體驗文】RED COW 紅牛聰勁即溶乳清蛋白,健身增肌必備奶粉推薦
【新莊美食】觀醬手|日式無菜單料理採預約制,用千元有找的價格吃到兩倍價值的料理!
沒有留言:
張貼留言