跳过列表可以有重复的元素吗?

Aus*_*tin 5 duplicates skip-lists data-structures

我知道跳过列表是一种排序的数据结构,但它可以有重复的元素吗?或者,如果您尝试插入一个已经存在的元素,它只会返回指向预先存在的元素的指针?

tem*_*def 5

答案是“是的,跳过列表可以有重复的元素,但这不是必需的。”

你能制作一个支持重复的跳过列表吗?绝对地!您只需更新插入过程,以便在看到要查找的元素时,只需在其后面插入该元素即可。这与存储多个相等值的 BST 类似 - 只需让插入过程在找到相等元素时始终向左或始终向右即可。

但跳跃列表必须始终允许重复项吗?不,不必如此,就像并非所有 BST 都允许重复一样。

如果您使用的是跳表库,请参阅文档以了解它是否支持重复项。如果您要创建自己的,请随意构建您想要的方式,并记录您的决定。