C语言实现队列入队出队操作:5个数顺序入队并输出
#include <stdio.h>
#define MAXSIZE 5
typedef struct queue {
int data[MAXSIZE];
int front, rear;
} Queue;
int isFull(Queue *q) {
return (q->rear + 1) % MAXSIZE == q->front;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
void enqueue(Queue *q, int x) {
if (isFull(q)) {
printf('Queue is full.\n');
return;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAXSIZE;
}
int dequeue(Queue *q) {
if (isEmpty(q)) {
printf('Queue is empty.\n');
return -1;
}
int x = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE;
return x;
}
int main() {
Queue q = {0};
int i, x;
for (i = 0; i < MAXSIZE; i++) {
scanf('%d', &x);
enqueue(&q, x);
}
for (i = 0; i < MAXSIZE; i++) {
printf('%d ', dequeue(&q));
}
printf('\n');
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nIvM 著作权归作者所有。请勿转载和采集!