说明:本资料中的内容及截图为本人在网络上学习时记录下的,侵权必删
1、红黑树性质
性质1:每个结点要么是黑色,要么是红色
性质2:根结点是黑色
性质3:每个叶子结点(NIL)是黑色
性质4:每个红色结点的两个子结点一定都是黑色。
不能两个红色结点相连。
性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。
红黑树并不是一个完美平衡的二叉查找树
红黑树维持自平衡的三种操作
a.变色:结点的颜色由红变黑或由黑变红
b.左旋:以某个结点作为支点(旋转结点),其右子结点变为旋转结点的父结点,右子结点的左子结点变为旋转结点的右子结点,左子结点保持不变。
c.右旋:以某个结点作为支点(旋转结点),其左子结点变为旋转结点的父结点,左子结点的右子结点变为旋转结点的左子结点,右子结点保持不变。
红黑树插入情景4.1:
叔叔结点存在且为红结点
依据红黑树性质4可知,红色结点不能相连==>祖父结点肯定为黑结点
因为不可以同时存在两个相连的红结点。那么此时该插入子树的红黑树层数的情况是:黑红红。最简单的处理方式是将其改为:红黑红
示意图
处理方式:
1.将P和U结点改为黑色
2.将PP改为