数据结构-SkipList

SkipList介绍

1989年发布,随机性链表数据结构。

  • 平均空间复杂度:O(n), 最差空间复杂度O(nlogn)
  • 平均时间复杂度:O(logn), 最差时间复杂度O(n), 查找,添加,删除

SkipList特性

  1. 与平衡树相比空间占用会大,但时间复杂度相同,在内存如此便宜的阶段差异不大。
  2. SkipList实现相对简单,相比平衡树维护平衡方式。
  3. 区间查找方式要比平衡树更高效率。(指针大于递归)

SkipList应用

  1. Redis中SortSet数据结构中有SkipList身影。

SkipList结构

type Node struct {
  Forward []*Node  

  Next *Node
  Entry  *Entry
}

type SkipList struct {
  Head *Node
  maxLevel uint    //最大级别

  Lenght uint  //链表长度
  randP  uint  //随机种子
}

具体实现代码

https://github.com/xc8801/Data-Structures/tree/master/SkipList

你可能感兴趣的:(数据结构-SkipList)