数据结构(C语言版)怎样用代码实现到银行排队叫号系统
时间: 2024-01-06 07:05:56 浏览: 82
C语言编写的银行排队系统
5星 · 资源好评率100%
银行排队叫号系统可以通过队列数据结构来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_QUEUE_SIZE 100
// 定义队列结构体
typedef struct {
int data[MAX_QUEUE_SIZE];
int front;
int rear;
} Queue;
// 初始化队列
void initQueue(Queue *queue) {
queue->front = queue->rear = 0;
}
// 判断队列是否为空
int isEmptyQueue(Queue *queue) {
return queue->front == queue->rear;
}
// 判断队列是否已满
int isFullQueue(Queue *queue) {
return (queue->rear + 1) % MAX_QUEUE_SIZE == queue->front;
}
// 入队操作
void enQueue(Queue *queue, int x) {
if (isFullQueue(queue)) {
printf("队列已满,无法入队!\n");
return;
}
queue->data[queue->rear] = x;
queue->rear = (queue->rear + 1) % MAX_QUEUE_SIZE;
}
// 出队操作
int deQueue(Queue *queue) {
if (isEmptyQueue(queue)) {
printf("队列为空,无法出队!\n");
return -1;
}
int x = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_QUEUE_SIZE;
return x;
}
int main() {
Queue queue;
initQueue(&queue);
int num;
printf("请输入银行排队等待办理业务的客户数:");
scanf("%d", &num);
for (int i = 1; i <= num; i++) {
enQueue(&queue, i);
}
printf("请依次输入银行叫号的客户号码:");
for (int i = 1; i <= num; i++) {
int x;
scanf("%d", &x);
if (x != deQueue(&queue)) {
printf("叫号顺序错误!\n");
return 0;
}
}
printf("叫号顺序正确!\n");
return 0;
}
```
在这个例子中,我们定义了一个队列结构体,包含一个整型数组和队列的头尾指针。然后,我们实现了初始化队列、判断队列是否为空、判断队列是否已满、入队、出队等操作。在main函数中,我们首先输入银行排队等待办理业务的客户数,然后依次将客户号码1~num入队。接着,我们依次输入银行叫号的客户号码,判断叫号顺序是否正确,即为银行排队叫号系统的实现。
阅读全文