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('Queue is full.\n'); exit(1); } q->data[q->rear] = x; q->rear = (q->rear + 1) % MAX_SIZE; }
int dequeue(Queue *q) { if (is_empty(q)) { printf('Queue is empty.\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 i, x;
for (i = 0; i < MAX_SIZE; i++) {
scanf('%d', &x);
enqueue(&q, x);
}
while (!is_empty(&q)) {
printf('%d ', dequeue(&q));
}
printf('\n');
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nIuy 著作权归作者所有。请勿转载和采集!