
散列表的运用:插队买票
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本篇文章介绍了如何使用散列表来解决插队买票的问题,通过高效的键值对存储和检索方式,实现公平有序的购票过程。
设计一个程序来模拟插队买票的场景。在这个实验里假设售票处有两个窗口,并且无论选择哪个窗口排队都需要等待。新来的顾客可以选择直接站在朋友后面(即插队),但前提是这样的操作是合理的,也就是说他不能在队伍中比另一个较短的队伍更远离服务窗口的位置插入。
已有的排队者不会离开或转移到其他队伍去;他们只会买完票后才离场。每个人的名字都是独一无二且唯一的,并仅购买一次门票。
对于每一个前来购票的人:
1. 如果没有发现任何朋友正在排队,则此人会加入最短队列的末尾;
2. 若在某个窗口处找到了一个朋友,那么这个人可以选择站在该朋友后面;但需要先判断插入位置是否合理。即插队者前面等待人数不能多于另一个队伍总人数,否则应选择较短的一条队伍排在其末端。
3. 当发现多个朋友时:
- 如果这些朋友们都在同一个窗口排队,则此人应当站到最后一个已知的朋友之后;
- 若这些朋友分布在不同窗口的队伍中,那么应该站在离服务台最近的那个队列里。
全部评论 (0)
还没有任何评论哟~


