c语言用数组实现队列
时间: 2023-11-15 15:03:57 浏览: 82
C语言用数组实现队列是一种基于数组的数据结构,它遵循先进先出的原则。队列有两个指针,一个指向队头,一个指向队尾。当元素入队时,它被添加到队尾,当元素出队时,它被从队头删除。C语言用数组实现队列的代码如下:
1.定义队列大小和数组
#define SIZE 1024
static int queue[SIZE] = {0};
static int head, tail;
2.判断队列是否为空
int Is_Empty(void) {
return head == tail;
}
3.判断队列是否已经满了
int Is_Full(void) {
return (head+1)%SIZE == tail;
}
4.入队
int enqueue(int value) {
if (Is_Full()) {
return 1;
}
queue[head] = value;
head = (head + 1) % SIZE;
return 0;
}
5.出队
int dequeue(int *value) {
if (Is_Empty()) return 1;
*value = queue[tail];
tail = (tail + 1) % SIZE;
return 0;
}
6.主函数
int main(void) {
int i;
int temp;
int buffer = {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();
}