红黑树规则

红黑树

性质

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

旋转

旋转与颜色变换规则

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

颜色变换

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

旋转

  • 左旋
    • 当父节点是红色,叔叔节点是黑色,且当前节点是右节点时,对父节点进行左旋
    • 父节点变黑,祖父节点下沉变红
  • 右旋
    • 当父节点是红色,叔叔节点是黑色,且当前节点是左节点时,对祖父节点进行右旋
相关推荐
江湖有缘8 小时前
Docker实战 | 使用Docker部署Bibliotheca阅读习惯管理工具
java·docker·容器
艾莉丝努力练剑8 小时前
【AI大模型接入SDK】ChatSDK:CMake构建静态库完整实现
java·开发语言·网络·c++·人工智能·学习·sdk
百度一下吧8 小时前
umi后台管理项目实战:从工程搭建到生产构建
java·前端·javascript
Joe_Wang58 小时前
【从0到1学习JVM · 14】堆内存各区域分工与Xms和Xmx设为一样的真相
java·jvm·学习·垃圾回收
.道阻且长.8 小时前
C++11 :右值引用的作用,引用折叠和完美转发
java·开发语言·c++
code2cat8 小时前
Java进阶篇之StampedLock:先读取,再校验,必要时退回读锁
java·开发语言
光依旧8 小时前
MCP实战手记(九):生产化MCP Server的6层安全防护
java·人工智能·spring boot·安全·网络安全·ai agent·mcp
阳光九叶草LXGZXJ9 小时前
Linux-学习-12-JDK安装
java·linux·运维·学习
马剑威(威哥爱编程)9 小时前
【AI全栈后端12-04】Spring Boot 用结构化输出自动解析简历:让模型按你的 POJO 输出
java·人工智能·spring boot·后端
xcl092515 小时前
北京24小时自助健身房系统软件开发实战:从架构到部署全流程指南
java·spring boot·架构