資料結構---佇列(C語言陣列實現)
阿新 • • 發佈:2018-10-31
https://blog.csdn.net/morixinguan/article/details/51374296
資料結構---佇列(C語言陣列實現)
佇列是先進先出的過程。簡單地畫一幅畫來描述一下佇列:
一個簡單的、由陣列實現的佇列,可以由以下幾種最基本的操作組成:
1、判斷佇列是否為空
2、判斷佇列是否已經滿了
3、入隊
4、出隊
程式碼如下:
#include <stdio.h> #include <stdlib.h> //佇列大小 #define SIZE 1024 static int queue[SIZE] = {0}; static int head, tail; int Is_Empty(void) { //判斷佇列是否為空,如果頭是尾,就證明為空 return head == tail; } int Is_Full(void) { //判斷佇列是否已經滿了 return (head+1)%SIZE == tail; } //入隊 int enqueue(int value) { if (Is_Full()) { return 1; } queue[head] = value; head = (head + 1) % SIZE; return 0; } //出隊 int dequeue(int *value) { if (Is_Empty()) return 1; *value = queue[tail]; tail = (tail + 1) % SIZE; return 0; } int main(void) { int i; int temp; int buffer[5] = {1, 2, 3, 4, 5}; printf("入隊前:\n"); for(i = 0; i < 5; i++) { printf("queue[%d]:%d\n", i, queue[i]); } for(i = 0; i < 5; i++) { enqueue(buffer[i]); } printf("入隊後:\n"); for(i = 0; i < 5; i++) { printf("queue[%d]:%d\n", i, queue[i]); } printf("出隊後:\n"); while(1) { if (dequeue(&temp)) break; printf("%d\n", temp); } getchar(); }