SkipList(跳表)

基本概述

SkipList(跳表)首先是链表,但与传统链表相比有几点差异:

  • 元素按照升序排列存储
  • 节点可能包含多个指针,指针跨度不同【根据元素个数不同,可以建立多级指针(最多可以建立32级指针)】

主要是为了提高查找效率!

SkipList(跳表)_第1张图片

源码:

SkipList(跳表)_第2张图片

完整结构:

SkipList(跳表)_第3张图片

特点

  • 跳跃表是一个双向链表,每个节点都包含score和ele值
  • 节点按照score值排序,score值一样则按照ele字典排序
  • 每个节点都可以包含多层指针,层数是1到32之间的随机数
  • 不同层指针到下一个节点的跨度不同,层级越高,跨度越大
  • 增删改查效率与红黑树基本一致,实现却更简单

你可能感兴趣的:(#,redis,skiplist,数据结构,链表)