SkipList

SkipList | 跳表

Skip List,称之为跳表,它是一种可以替代平衡树的数据结构,其数据元素默认按照 key 值升序,天然有序。Skip list 让已排序的数据分布在多层链表中,以 0-1 随机数决定一个数据的向上攀升与否,通过“空间来换取时间”的一个算法,在每个节点中增加了向前的指针,在插入、删除、查找时可以忽略一些不可能涉及到的结点,从而提高了效率。

SkipList 具备如下特性:

由很多层结构组成,level 是通过一定的概率随机产生的 每一层都是一个有序的链表,默认是升序,也可以根据创建映射时所提供的 Comparator 进行排序,具体取决于使用的构造方法 最底层(Level 1)的链表包含所有元素 如果一个元素出现在 Level i 的链表中,则它在 Level i 之下的链表也都会出现 每个节点包含两个指针,一个指向同一链表中的下一个元素,一个指向下面一层的元素

下一页