Data structures 如何增加跳过列表,以便我们能够有效地提取skiplist特定段的最大值?[Skiplist未按值排序]

Data structures 如何增加跳过列表,以便我们能够有效地提取skiplist特定段的最大值?[Skiplist未按值排序],data-structures,skip-lists,Data Structures,Skip Lists,我有一个问题,我正在努力解决 我有一个具有以下元素的技能列表: 元素=(日期、值) 日期是skiplist的键,因此skiplist按日期排序。 如何扩充skiplist,使函数 Max(d1,d2)->返回日期d1和d2之间的最大值 这是最有效的。 值是整数。最有效的方法是迭代从d1到d2的每个项目,并选择最大项目。因为跳过列表是按日期排序的,所以不能假定值的顺序:它们也可以是随机排序的。所以你必须看每一个 因此,找到d1是O(logn)(平均来说,这毕竟是一个跳过列表),然后找到最大

我有一个问题,我正在努力解决

我有一个具有以下元素的技能列表:

元素=(日期、值)

日期是skiplist的键,因此skiplist按日期排序。 如何扩充skiplist,使函数

Max(d1,d2)->返回日期d1和d2之间的最大值
这是最有效的。
值是整数。

最有效的方法是迭代从
d1
d2
的每个项目,并选择最大项目。因为跳过列表是按日期排序的,所以不能假定值的顺序:它们也可以是随机排序的。所以你必须看每一个

因此,找到
d1
是O(logn)(平均来说,这毕竟是一个跳过列表),然后找到最大元素是O(范围),其中
range
d1
d2
之间的项数

如何实现这一点是向跳过列表添加一个函数,该函数允许您从任意元素开始迭代列表。几乎可以肯定,您已经有了一个按顺序遍历整个列表的函数,因此您所要做的就是创建一个遍历一系列键(即从开始键到结束键)的函数