红黑树
作者:互联网
二叉查找树:树和它的子树满足以下约束:左节点小于父节点,右节点大于父节点
红黑树是非完美平衡二叉查找树,是完美黑色平衡二叉查找树
定义和性质
一种含有红黑结点并能自平衡的二叉查找树。它满足下面五个性质
1.每个结点要么是黑色,要么是红色
2.根结点是黑色
3.每个叶子结点NIL是黑色 的虚结点 值为null
4.每个红色结点的两个子结点一定都是黑色
5.任意结点到每个叶子结点的路径都包含数量相同的黑结点
旋转和颜色变换的规则:所有插入的点默认是红色
1.变颜色的情况:当前结点的父亲是红色,且它的祖父结点的另一个子节点也是红色(叔叔结点)
(1)把父节点设为黑色
(2)把叔叔也设为黑色
(3)把祖父也就是父亲的父亲设为红色
(4)把指针定义到祖父结点设为当前要操作的分析的点变换的规则
2.左旋:当前父节点是红色,叔叔是黑色的时候,且当前的节点是右子树。左旋以父节点作为左旋
3.右旋:当前父节点是红色,叔叔是黑色的时候,且当前节点是左子树。右旋
(1)把父节点变为黑色
(2)祖父变为红色
(3)以祖父节点旋转
标签:结点,黑色,祖父,二叉,红色,红黑树,节点 来源: https://www.cnblogs.com/ergePython/p/12361738.html