在C语言中使用队列模拟实现银行排队叫号系统
时间: 2024-11-22 22:45:49 浏览: 4
银行排队叫号系统实现
5星 · 资源好评率100%
在C语言中,你可以使用数组或链表等数据结构来模拟银行排队叫号系统的队列。这里我们以数组为例来说明:
首先,创建一个队列结构体,可以包含两个部分:一个存储当前元素的数组`queue[]`,以及两个指针`front`表示队头,`rear`表示队尾。
```c
typedef struct {
int capacity;
int size;
int *items; // 存储队列元素的数组
} Queue;
// 初始化队列
Queue* create_queue(int capacity) {
Queue *queue = malloc(sizeof(Queue));
queue->capacity = capacity;
queue->size = 0;
queue->items = (int*)malloc(capacity * sizeof(int));
return queue;
}
// 入队操作(enqueue)
void enqueue(Queue *queue, int value) {
if (queue->size == queue->capacity) {
printf("Queue is full.\n");
return;
}
queue->items[queue->size] = value;
queue->size++;
}
// 出队操作(dequeue)
int dequeue(Queue *queue) {
if (queue->size == 0) {
printf("Queue is empty.\n");
return -1;
}
int value = queue->items[0];
queue->items[0] = queue->items[queue->size - 1]; // 将最后一个元素移动到队首
queue->size--;
return value;
}
```
在这个简单的模拟中,你可以使用`enqueue()`函数添加顾客(数值),`dequeue()`函数模拟银行工作人员处理下一个号码。注意,这只是一个基础版的实现,实际应用可能需要考虑更复杂的场景,例如优先级队列、循环队列等。
阅读全文