跳表是建立在概率平衡基础上的具有随机性的数据结构,具有很好的平均时间性能。
跳表是一个有序链表,每个节点包含可变数目的链(指针),节点中的第i层链,跳过那些只包含低于第i层链的节点,构成一个单链表。第0层链是包含所有元素的有序链表,第1层链是第0层链的子集,......,第i层链包含的元素是第i-1层链的子集。在理想情况下,跳表的层数是
logn。
实用的跳表按一定的概率分布为新节点指定层次。
在跳表上的搜索从最高层表头结点开始,顺着指针向右搜索,遇到某一关键字值大于等于待查关键字值时,则下降到下一层,再沿较低层的指针向右搜索,逐步逼近待查元素,直到第0层指针所指的关键字值大于等于待查关键字值时,搜索终止。
代码实现: