C语言实现队列操作:输入5个数,按顺序入队并输出
#include <stdio.h> #include <stdlib.h>
#define MAX_SIZE 5 // 定义队列的最大容量
typedef struct { int data[MAX_SIZE]; // 存储队列元素的数组 int front; // 队头指针 int rear; // 队尾指针 } Queue;
// 初始化队列 void init(Queue *q) { q->front = q->rear = 0; }
// 判断队列是否为空 int is_empty(Queue *q) { return q->front == q->rear; }
// 判断队列是否已满 int is_full(Queue *q) { return (q->rear + 1) % MAX_SIZE == q->front; }
// 入队 void enqueue(Queue *q, int x) { if (is_full(q)) { printf('队列已满,无法入队!\n'); exit(1); } q->data[q->rear] = x; q->rear = (q->rear + 1) % MAX_SIZE; }
// 出队 int dequeue(Queue *q) { if (is_empty(q)) { printf('队列已空,无法出队!\n'); exit(1); } int x = q->data[q->front]; q->front = (q->front + 1) % MAX_SIZE; return x; }
int main() { Queue q; init(&q); // 初始化队列
int x;
for (int i = 0; i < MAX_SIZE; i++) {
scanf('%d', &x);
enqueue(&q, x); // 入队
}
for (int i = 0; i < MAX_SIZE; i++) {
x = dequeue(&q); // 出队
printf('%d ', x);
}
printf('\n');
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nIvt 著作权归作者所有。请勿转载和采集!