数据结构中常用的红黑树规则:
1、每个节点不是黑色就是红色。
2、根节点是黑色。
3、红色节点的左、右子节点是黑色的。
4、所有红色节点不能相连。
5、任一个节点到其子树中每个叶子节点的路径上,都有相同数量的黑色节点。
红黑树的三种变换:1、变颜色。2、左旋。3、右旋。
变换规则:
1、变颜色的情况:当前节点的父节点是红色,且它的祖父节点的另一个子节点(叔叔节点)也是红色。
- 把父节点设为黑色。
- 把叔叔节点也设为黑色。
- 把祖父节点(父节点的父节点)设为红色。
- 把指针设为祖父节点,把祖父节点作为当前节点。
2、左旋:当前父节点是红色,叔叔是黑色的时候,且当前节点是右子树,以父节点进行左旋。
3、右旋:当前父节点是红色,叔叔节点是黑色的时候,且当前节点是左子树,进行右旋。
- 把父节点变为黑色。
- 把祖父节点变为红色。
- 以祖父节点进行右旋。