我正在Yoyo Game Maker中制作一款游戏,其中有物品沿传送带移动。由于这些项目只向一个方向移动,我认为使用队列或类似队列的数据结构来存储项目是最有意义的。但是,为了能够渲染项目,我需要能够在队列中的任意位置读取所有项目,而不仅仅是头部或尾部。可从任何地方读取的队列式数据结构
[[a] [b] [c] [d]]
|
V
a <- [[ ] [b] [c] [d]] <- e
|
V
[[b] [c] [d] [e]]
| | | |
V V V V
b c d e
我可以简单地使用该手动移动其的所有值由前一个时隙动不动(使用for循环),但不知何故似乎效率低下,laggy,或者至少是,不良形式的阵列。无论如何,我的编程本能地反思了使用这种系统的想法。
这是一个正确的假设吗?数组真的是实现像这样的结构的最佳方式吗?我甚至应该担心效率问题,还是这种情况下的差异可以忽略不计?
一些建议或例子(任何编程语言)将不胜感激。
https://en.wikipedia.org/wiki/Circular_buffer – jbapple
@jbapple这将工作完美,谢谢。 – a52