数据结构与算法设计一个算法模拟银行排队叫号系统,实现顾客入队、叫号和取号功能。
时间: 2024-10-29 07:18:51 浏览: 47
C语言程序设计:基于Qt实现的叫号系统,模拟银行、医院的取号叫号系统
5星 · 资源好评率100%
可以使用一种简单的数据结构,如链表或队列(先进先出,FIFO),来模拟银行排队叫号系统。下面是一个基本的伪代码实现:
```python
class BankQueue:
def __init__(self):
self.waiting_queue = []
# 入队(顾客到达)
def enqueue(self, customer_id):
self.waiting_queue.append(customer_id)
# 取号(开始服务)
def dequeue(self):
if not self.waiting_queue: # 如果队列为空
return None # 返回None表示无人等待
return self.waiting_queue.pop(0) # 否则,取出第一个顾客并返回
# 叫号(通知下一个号码)
def call_number(self):
if self.waiting_queue:
current_customer = self.dequeue()
print(f"下一个号码是 {current_customer},请准备")
else:
print("当前无顾客等待")
# 使用示例
bank = BankQueue()
bank.enqueue(1) # 顾客A入队
bank.enqueue(2) # 顾客B入队
bank.call_number() # 输出:下一个号码是 1,...
```
在这个模型中,`enqueue`方法用于添加新来的顾客到队列尾部,`dequeue`方法从队列头部移除并返回下一个顾客ID,`call_number`则会检查是否有顾客在等待,并打印其号码。
阅读全文