用C语言的队列写一个排队取号的代码,并且标明注释
时间: 2024-02-26 17:56:43 浏览: 90
好的,以下是用C语言的队列实现排队取号的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 队列最大容量
typedef struct queue {
int front; // 队头指针
int rear; // 队尾指针
int data[MAX_SIZE]; // 存储数据的数组
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int isEmpty(Queue *q) {
return q->front == q->rear;
}
// 判断队列是否已满
int isFull(Queue *q) {
return (q->rear + 1) % MAX_SIZE == q->front;
}
// 入队
void enqueue(Queue *q, int num) {
if (isFull(q)) {
printf("The queue is full!\n");
return;
}
q->data[q->rear] = num;
q->rear = (q->rear + 1) % MAX_SIZE;
}
// 出队
int dequeue(Queue *q) {
if (isEmpty(q)) {
printf("The queue is empty!\n");
return -1;
}
int num = q->data[q->front];
q->front = (q->front + 1) % MAX_SIZE;
return num;
}
int main() {
Queue q;
initQueue(&q);
int num;
while (1) {
printf("Please input the number you want to enqueue (enter -1 to stop): ");
scanf("%d", &num);
if (num == -1) {
break;
}
enqueue(&q, num);
}
printf("The queue is:\n");
while (!isEmpty(&q)) {
printf("%d ", dequeue(&q));
}
printf("\n");
return 0;
}
```
注释已经标明在代码中,这个代码实现了一个基本的排队取号系统,用户输入要入队的号码,程序将号码加入队列中,最后按照队列的先进先出原则依次输出队列中的号码。
阅读全文