二叉查找树:树和它的子树满足以下约束:左节点小于父节点,右节点大于父节点
红黑树是非完美平衡二叉查找树,是完美黑色平衡二叉查找树
定义和性质
一种含有红黑结点并能自平衡的二叉查找树。它满足下面五个性质
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。