哈希表与树笔记(红黑树)(六)

红黑树

红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。  在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:

性质1. 节点是红色或黑色。 

性质2. 根节点是黑色。 

性质3.所有叶子都是黑色。(叶子是NUIL节点) 

性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

性质5.. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。 

   以上出自百度百科

       从字面意思上来理解(个人理解,如有错误欢迎指正):

                   性质1、性质2和性质5不用多说

                   性质3:红黑树中你所检索的数据肯定不是叶子节点既红黑树中所有有效结点都不是叶子节点

                   性质4:红色节点的父节点和子节点都是黑色,但是黑色节点父节点和子节点可能是黑色

 

 

红黑树的插入

       红黑树的插入错做主要分为两部分工作,这两部分工作和二叉平衡树的插入类似,都是先找到插入位置,再进行自平衡。

不一样的地方就是自平衡的规则:

哈希表与树笔记(红黑树)(六)

        哈希表与树笔记(红黑树)(六)哈希表与树笔记(红黑树)(六)

 

红黑树删除

哈希表与树笔记(红黑树)(六)

参考:30张图带你彻底理解红黑树-安卓大叔