队列模拟的数组与双链表
Arrays vs. Doubly Linked Lists for Queue simulation
我正在为学校做一项作业,模拟学生排队,并在注册办公室打开多个窗口。
我为学生排了队,但有人建议我为实现我们自己制作的队列类的窗口使用数组
我不明白为什么数组会起作用,因为除了学生时间递减之外,我还想了解每个窗口的其他变量。
我只是在寻找一些方向或更深入的解释,如何使用数组来存储每个学生在窗口的时间,而不是另一个双链表?
在我看来,你有可变数量的学生和固定数量的窗户(建筑通常不会经常变化)。如果我在代码中对此进行表示,我会使用一个动态大小的容器(列表、向量、队列等)来包含所有学生,并为寄存器使用一个固定大小的数组。这将体现代码中真实情况的意图,使其他使用您代码的人不太可能犯与注册办公室规模有关的任何错误。通常情况下,选择容器类型完全取决于其预期用途!
因此,您可以设计一个类来使用一个固定大小的数组来容纳所有寄存器(或者更好的:一个模板指定的大小,就像您使用C++一样)。然后,您可以使用给定的大小参数编写所有其他与Registrar相关的函数,从而在Registrary数组中永远不会越界。
最后:数组包含您希望它包含的任何信息。你可以让它只容纳数字(比如int),但你也可以让它容纳任何类型的对象!我的意思是:创建一个Registor类,该类包含您想为每个Registor收集的所有信息。然后创建一个包含Registrar对象的数组。然后,无论何时访问数组中的单个元素,都可以通过该引用访问单个注册器的所有信息。
相关文章:
- 实现链表数组
- 调整大小和复制哈希表数组中的元素
- 使用(非对象)API 时改变表数组C++而不重新创建整个平面缓冲区
- 递归解决方案,用于显示线性链表数组
- 链表数组(5 个队列)
- 从链表数组访问节点数据
- 在C 中对多个链接数组进行排序
- 无法通过一个单向链表数组创建邻接列表
- 如果我们使用链表数组来实现哈希表,则可以以不需要遍历的方式实现"add"。这是真的还是假的?
- 使用共享指针创建的链表数组
- 链表数组给C++带来麻烦
- 链表数组大小不同
- 如何检查链表数组中的某个链表是否为空
- 链表数组的堆栈溢出问题
- 使用链表数组实现哈希表
- 链表数组 – 地址簿
- 链表数组(使用哈希)
- 如何创建一个动态大小的链表数组
- 链表数组c++
- 哈希表 - 链表数组 - C++