跳跃表的实现
跳跃表由redis.h/zskiplistNode和redis.h/zskiplist两个结构定义
header: 指向跳跃表的表头节点
tail: 指向跳跃表的表尾节点
level: 记录目前跳跃表内,层数最大的那个节点的层数,表头节点不包括在内
length: 记录跳跃表的长度,跳跃表目前包含节点的数量,表头节点不计算在内
BW : 后退指针,指向当前节点的前一个节点。后退指针在程序中从表尾向表头遍历时使用
分值: 各个节点中的1.0,2.0和3.0是节点的分值。在跳跃表中节点按各自所保存的分值从小到大排列。
成员对象: 各个节点中的o1,o2,和o3是节点所保存的成员对象
注: 表头节点和其他节点的构造是一样的,表头节点也有后退指针,分值和成员对象,但是这些属性不会被用到