跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。

一、跳跃表结构定义
1. 跳跃表节点结构定义:

2. 跳跃表结构定义:

示例:

二、跳跃表节点中各种结构的作用
1. 层:用于加快访问其他节点的速度,一般来说,层的数量越多,访问其他节点的速度就越快。
2. 前进指针:用于从表头向表尾方向访问节点。
3. 跨度:用于计算排位。在查找某个节点的过程中,将沿途访问过的所有层的跨度累计起来,得到的结果就是目标节点在跳跃表中的排位。
4. 后退指针:用于从表尾向表头方向访问节点。
5. 分值和成员:跳跃表中所有节点都按分值从小到大排序。

三、跳跃表在Redis中的用途
Redis只在两个地方使用到了跳跃表:
1. 作为有序集合键的底层实现之一: 如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。
2. 在集群节点中用作内部数据结构。

最新文章

  1. Javascript之变量作用域
  2. nginx安装(1) – ttlsa教程系列之nginx
  3. 将DLL中资源导出到指定文件夹
  4. UVA 11489 - Integer Game(找规律)
  5. Hibernate之Query接口的uniqueResult()方法
  6. 仅使用处理单个数字的I/O例程,编写一个过程以输出任意实数(可以是负的)
  7. c#记事本
  8. bzoj 1047 : [HAOI2007]理想的正方形 单调队列dp
  9. Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。_StarSasumi_新浪博客
  10. Windows下VSCode编译调试c/c++
  11. [洛谷P1272] 重建道路
  12. python基础(6)-深浅拷贝
  13. WMS专业术语&系统功能操作培训
  14. CentOS 7.2编译安装nginx1.10.3+MySQL5.5.38+PHP5.5.38
  15. 关于VS2013下制作和使用静态库和动态库
  16. Mac添加命令别名
  17. [百度贴吧]10GB 通信线缆
  18. Java入门:基础算法之产生随机数
  19. SQL注入备忘录
  20. 常用CSS缩写语法总结(转)

热门文章

  1. 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历
  2. Matplotlib_常用图表
  3. 洛谷 P1120 小木棍[数据加强版]
  4. web安全--<a>标签带有target=“_blank”
  5. Java--对象和引用 转载
  6. [学习笔记]一个实例理解Lingo的灵敏性分析
  7. (转)uibutton边框颜色
  8. LCD驱动分析(二)帧缓冲设备作为平台设备
  9. python基础——14(shelve/shutil/random/logging模块/标准流)
  10. Leetcode 357.计算各个位数不同的数字个数