红黑树是一种可以自动平衡的二叉查找树。它在二叉查找树的基础上为每个节点添加了额外的属性:红色或黑色的颜色。在进行插入、删除操作后,它会进行自动平衡操作。从而确保该树的树根到叶子的所有路径长度相差保持在2位以下。
条件
红黑树需要满足以下条件:
- 所有节点为黑或白色;
- 根节点为黑;
- 所有叶子(Nil)为黑色;
- 如果一个节点为红色,那么它的子节点都为黑色;
- 对所有的节点而言,该节点到它的叶子的所有简单路径所包含的黑色节点是相同的。
操作
旋转操作
旋转操作如下:
|
|
1.右旋转 Right-Rotate(T, y)
|
|
2.左旋转 Left-Rotate(T, x)
|
|