第5章 跳跃表
有序集合,ZSet关键组成部分,时间复杂度媲美平衡树,且实现简单。
5.1 跳跃表的实现
可以简单理解为每个节点会有一些指向后面跨越N个节点的指针,比如说Node1不仅有指向Node2的指针,还可以有Node5的,Node10的。
5.1.1 跳跃表节点
1>层
就像楼房一样,越高的层所记录的指针就越稀疏,跨度也会越大,遍历时每次向后跨越的节点数也越多,自然也会越快。
2>前进指针
遍历时,先使用最高层所记录的指针(跨度最大)进行遍历。
3>跨度
节点在当前层级上对于下个节点的距离。
4>后退指针
指向前一个节点,不跳。
5>分值和成员
<Double,SDS>
5.1.2 跳跃表
由多个跳跃表节点组成,还保存了头、尾节点、节点数、最大层级等信息。
5.2 跳跃表API
略,原书P45。