跳躍表(skiplist)
????????跳躍表是一種有序數(shù)據(jù)結(jié)構(gòu),通過在每個節(jié)點中維護多個指向其他節(jié)點的指針,達到快速訪問節(jié)點的目的。
查找算法復雜度:平均O(logN)、最壞O(N)
1、結(jié)構(gòu)及實現(xiàn)
1.1跳躍表

header:?指向表頭節(jié)點的指針
tail:?指向表尾節(jié)點的指針
level:?跳躍表內(nèi)層數(shù)最大的節(jié)點的層數(shù)(不包含表頭節(jié)點層數(shù))
length:?跳躍表的長度,即跳躍表目前包含的節(jié)點數(shù)量(不包含表頭節(jié)點)
1.2跳躍表節(jié)點

obj:?成員對象
score:?分值,跳躍表中,節(jié)點按各自保存的分值從小到大排列
backward:?后退指針,指向當前節(jié)點的前一個節(jié)點,用于從表尾向表頭遍歷
level:??層
? ? forward:前進指針,用于訪問位于表尾方向的其他節(jié)點
? ? span:跨度,記錄前進指針所指向的節(jié)點和當前節(jié)點的距離