【发布时间】:2009-03-03 20:45:08
【问题描述】:
我想创建类似于双链表(但使用数组)的东西,它适用于下限/上限。
一个典型的圆形数组可能看起来像:
next = (current + 1) % count;
previous = (current - 1) % count;
但是将下限/上限正确地纳入其中的数学算术是什么?
- 0(下限项目 1)
- 1
- 2(上界第 1 项)
- 3(下限第 2 项)
- 4(上界第 2 项)
这样:
-> 项目 1 的索引 2 上的下一个返回 0
-> 第 1 项的索引 0 上的前一个返回 2
-> 项目 2 的索引 4 上的下一个返回 3
-> 第 2 项的索引 3 上的前一个返回 4
谢谢!
注意:不能使用外部库。
【问题讨论】:
-
你能扩展你的解释吗?好像你想要一个循环队列的循环队列。在这种情况下,每个队列在单独的数组中会更好。