输入5个数并按输入顺序入队5个数都输入完成后请用C语言编写代码将它们逐个出队并输出输入形式:1 2 3 4 5输出形式:1 2 3 4 5
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 5
typedef struct Queue {
int data[MAX_SIZE];
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue *queue) {
queue->front = queue->rear = 0;
}
// 判断队列是否为空
int isQueueEmpty(Queue *queue) {
return queue->front == queue->rear;
}
// 判断队列是否已满
int isQueueFull(Queue *queue) {
return (queue->rear + 1) % MAX_SIZE == queue->front;
}
// 入队
void enQueue(Queue *queue, int data) {
if (isQueueFull(queue)) {
printf("队列已满,无法入队!\n");
return;
}
queue->data[queue->rear] = data;
queue->rear = (queue->rear + 1) % MAX_SIZE;
}
// 出队
int deQueue(Queue *queue) {
if (isQueueEmpty(queue)) {
printf("队列已空,无法出队!\n");
return -1;
}
int data = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_SIZE;
return data;
}
int main() {
Queue queue;
initQueue(&queue);
int i, data;
printf("请输入5个数字,以空格分隔:\n");
for (i = 0; i < MAX_SIZE; i++) {
scanf("%d", &data);
enQueue(&queue, data);
}
printf("出队的元素依次为:");
while (!isQueueEmpty(&queue)) {
printf("%d ", deQueue(&queue));
}
printf("\n");
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/dwYa 著作权归作者所有。请勿转载和采集!