Redis数据结构-SkipList(跳表)
SkipList(跳表)首先是链表,但与传统链表相比有几点差异:
元素按照升序排列存储
节点可能包含多个指针,指针跨度不同。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJYvbpTG-1666106485250)(.\原理篇.assets\1653986771309.png)]](https://i-blog.csdnimg.cn/blog_migrate/ece4acd1030f920d800e9dedab398cf0.png)
查找19时
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rorA6ARZ-1666106485252)(C:\Users\wu\AppData\Roaming\Typora\typora-user-images\image-20221018231929942.png)]](https://i-blog.csdnimg.cn/blog_migrate/4db6b6def7783687e52be979a85e919e.png)
可见效率会比较高。
SkipList(跳表)首先是链表,但与传统链表相比有几点差异:
元素按照升序排列存储
节点可能包含多个指针,指针跨度不同。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XxvHkStS-1666106485253)(.\原理篇.assets\1653986813240.png)]](https://i-blog.csdnimg.cn/blog_migrate/4e729d2a7a507e84180b99d8283c2065.png)
SkipList(跳表)首先是链表,但与传统链表相比有几点差异:
元素按照升序排列存储
节点可能包含多个指针,指针跨度不同。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRfLnawi-1666106485253)(.\原理篇.assets\1653986877620.png)]](https://i-blog.csdnimg.cn/blog_migrate/3b0a8e2ad8efaac611fc031d1fd7f5f2.png)
小总结:
SkipList的特点:
- 跳跃表是一个双向链表,每个节点都包含score和ele值
- 节点按照score值排序,score值一样则按照ele字典排序
- 每个节点都可以包含多层指针,层数是1到32之间的随机数
- 不同层指针到下一个节点的跨度不同,层级越高,跨度越大
- 增删改查效率与红黑树基本一致,实现却更简单
98

被折叠的 条评论
为什么被折叠?



