假设给我一个跳过列表,顺序为 3。
HEAD
level 3 |--------------------------------------------> X
| |---|
level 2 | -------------------> | | ----------------> X
| |---| |---| |---| |---|
level 1 | -> | | -> | | -> | | -> | | -------> X
| |---| |---| |---| |---|
| | 20| |100| |150| |200|
| |---| |---| |---| |---|
minlimit = ceil(order/2) - 1 = 1
maxlimit = order - 1 = 2
所以本质上它是一个1-2 skip-list
.
如果我想50
通过自上而下的插入算法插入,它会100
在落入Head
and150
和 insert 50
right before之间的间隙之前提高节点的级别100
。现在将发生违规,因为 和 之间没有节点100
,而在该间隙中150
应该至少有一个高度为.h-1
minlimit=1
我究竟做错了什么?