到目前为止,我发现的所有跳过列表实现都使用键并将它们与值相关联。但是我需要的是一个跳过列表,我可以在其中在索引位置 i 处插入一个值,以便可以使用索引递增 1 来查询该索引 i 之后的所有值。
这里有一个澄清的小例子:
//pseudocode
//let skipList sk be a list of ints, containing 5 elements.
//insert 6 at index 3
sk.insert(3, 6);
//insert 5 at index 3
sk.insert(3, 5);
//get index 4
int value = sk.get(4);
现在value
应该是 6,因为在索引 3 处插入了 5,所以值 6 向上移动了一个索引。
可以使用跳过列表构建这样的数据结构,请参阅此处的可索引跳过列表: http ://en.wikipedia.org/wiki/Skip_list
但我找不到实现。拥有这样的数据结构将非常有用,例如在大列表上有许多随机插入和访问的情况下。