我在Java数据结构的
在包含
下图是: 具有(a)均匀间距和(b)不均匀间距和不同级别节点的Skip列表;(c)显然显示参考节点的跳过列表。
我不明白其中的数学部分,也不理解什么是Skip List以及什么是偶数节点。
Skip List
主题下学习时发现以下内容:在包含
n个节点
的Skip列表中,对于每个数字k
和i
,满足1≤k≤lg n
且1≤i≤n/2k–1⎦ – 1
,位于位置2k–1
· i
的节点指向位于位置2k–1
· (i + 1
)的节点。这意味着每隔两个节点指向它后面第二个节点,每隔四个节点指向它后面第四个节点,以此类推。如图3.17a所示。通过在列表上具有不同数量的引用字段的节点上实现:一半的节点只有一个引用字段,四分之一的节点具有两个引用字段,八分之一的节点具有三个引用字段,等等。引用字段的数量表示每个节点的级别,级别数为maxLevel = ⎣lg n⎦ + 1
。下图是: 具有(a)均匀间距和(b)不均匀间距和不同级别节点的Skip列表;(c)显然显示参考节点的跳过列表。
我不明白其中的数学部分,也不理解什么是Skip List以及什么是偶数节点。