当前位置:   article > 正文

如何构建成一个红黑树_红黑树构造方法

红黑树构造方法

一:红黑树的五点特质:

1、每个节点都只能是红色或者黑色

2、根节点是黑色

3、每个叶节点(NIL节点,空节点)是黑色的。

4、如果一个结点是红的,则它两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。

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

二:以下五种情况涵盖了绝大部分(杠精绕行)的新增可能,不管这棵红黑树多么复杂,都可以根据这五种情况来进行生成:

1:若新插入的节点N没有父节点,则直接当做根据节点插入即可,同时将颜色设置为黑色。

2:父节点为黑色(C),并且新增节点(A)为父节点的左子节点,可以直接插入,也不会打乱红色树的五大特质。

 

3若父节点A和叔父节点B都是红色,父节点的父节点C是黑色,这样就不能直接插入了,设置节点A和B为黑色,设置节点C为红色,这样满足条件,但是C节点的父节点或许也是红色,这样以C节点为新增节点,向上进行调整。

4:这种情况多数是由情况三变色,向上调整所出现情况。新增节点为父节点A的左子节点,并且都为红色,新增节点的父节点的父节点C为黑色,叔叔节点B为黑色或者NIL。这样以节点C为中心进行右单旋并着色。相反进行左单旋并着色。

5:这种情况多数是由情况三变色,向上调整所出现情况。新增节点为父节点A的右子节点,父节点A为父节点的父节点C的左子节点。首先以父节点A为中心经行左单旋,然后以父节点A的父节点C为中心进行右单旋。相反则先以父节点A为中心右旋,然后再以节点C为中心左旋。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/738735
推荐阅读
相关标签
  

闽ICP备14008679号