红黑树规则

红黑树

性质

  1. 根节点都是黑色
  2. 红色节点的子节点必然是黑色
  3. 每个节点不是红色就是黑色
  4. 叶子节点都是黑色

旋转

旋转与颜色变换规则

  1. 所有插入的节点默认是红色

颜色变换

  1. 当前节点的父节点是红色 且 其祖父节点的另一个子节点(叔叔节点)也是红色
    • 将父节点和叔叔节点变成黑色 祖父节点变成红色 然后对祖父节点进行判断是否需要变换颜色或者旋转

旋转

  • 左旋
    • 当父节点是红色,叔叔节点是黑色,且当前节点是右节点时,对父节点进行左旋
    • 父节点变黑,祖父节点下沉变红
  • 右旋
    • 当父节点是红色,叔叔节点是黑色,且当前节点是左节点时,对祖父节点进行右旋
相关推荐
凤凰院凶涛QAQ1 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛1 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1142 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
w_zero_one3 小时前
算法--模拟
java·数据结构·算法
Javatutouhouduan3 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David3 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源4 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David4 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool1122664 小时前
网络编程^
java
Thinker QAQ5 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing