红黑树(Red Black Tree):它是一种自平衡的二叉查找树
- 红黑树(RBT)特性:
- 根节点是黑色
- 节点由红色和黑色组成
- 红节点的子节点必为黑节点
- 叶子节点都是黑色空节点(NIL节点)
- 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点(不包含NIL节点)
- 红黑树如何实现自平衡
- 利用红黑树的特性,也就是它的规则
- 当插入或者删除节点破坏了红黑树的规则时,它便会才去措施做出一些调整
注:红黑树插入元素时都是红色节点,如果插入元素为黑色直接就破坏了它的规则(上面第5点)
- 红黑树调整方式(具体方式参考下方链接)
- 变色
- 旋转(左旋转、右旋转)
- 为什么要用红黑树
- 简单来说红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构
参考:
- 什么是红黑树