用容器请编程模拟以下流程。 (1)超市结账需要排队,购物人员不多只开放一个结账通道,初始时有3人在排队,接着又陆续来个2个人,此时排序第2位的顾客想起还需要购买其他物品,主动放弃排队。 (2)慢慢的,购物人员
时间: 2024-05-15 21:17:52 浏览: 93
依次向前移动,最终轮到第3人结账,然后又有1人加入队列,接着第2人又回到了队列,此时排在第4位。最后,所有人结完账后,队列为空。
答案如下(使用Python语言):
```
queue = ['person1', 'person2', 'person3'] # 初始时有3人在排队
print('当前队列:', queue)
queue.append('person4') # 排队的第1个人加入队列,队尾加入
queue.append('person5') # 排队的第2个人加入队列,队尾加入
print('加入2个人后的队列:', queue)
queue.pop(1) # 排序第2位的顾客放弃排队,第2个人出队,队列内只剩4个了
print('第2个人放弃排队后的队列:', queue)
queue.pop(0) # 结账完毕的第1个人出队,队列内只剩3个了
print('第1个人结账后的队列:', queue)
queue.append('person6') # 排队的第3个人加入队列,队尾加入
print('加入1个人后的队列:', queue)
queue.insert(3, 'person2') # 第2个人回到队列,排在第4位,队列内有5个了
print('第2个人回到队列后的队列:', queue)
while queue: # 循环,直到队列为空为止
print(queue.pop(0), '结账') # 出列,结账
```
输出结果:
```
当前队列: ['person1', 'person2', 'person3']
加入2个人后的队列: ['person1', 'person2', 'person3', 'person4', 'person5']
第2个人放弃排队后的队列: ['person1', 'person3', 'person4', 'person5']
第1个人结账后的队列: ['person3', 'person4', 'person5']
加入1个人后的队列: ['person3', 'person4', 'person5', 'person6']
第2个人回到队列后的队列: ['person3', 'person4', 'person5', 'person2', 'person6']
person3 结账
person4 结账
person5 结账
person2 结账
person6 结账
```