红黑树插入算法调整的一些原则

来源:互联网 发布:w7 mysql更改密码 编辑:程序博客网 时间:2024/06/10 13:59

红黑树的定义

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

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

  • 性质2. 根是黑色。

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

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

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

红黑树插入后调整原则

  • 由于红黑树的性质 5 被破坏后恢复极其复杂,所以红黑树插入算法的第一个原则是插入后,性质 5 不变,所以,我们要把新插入的节点涂为红色。

  • 新节点为红色,则可能产生的冲突只有一种,那就是刚好他的父节点也为红色。

  • 递归下去 , 我们在调整当前局面时,决不能破坏性质 5 ,在保持每条分支黑色节点数量不变的情况下,将红红冲突一直向上移,直到根节点变为红色,此时把根节点涂黑,然后就可以了。
  • 局部分支调整策略,其实就是能变颜色就变颜色,不能变得就左旋和右旋。
原创粉丝点击