红黑树(RBT tree)详解

黑树(Red Black tree)

一、红黑树的一些性质

1、红黑树是一颗自平衡的二叉查找树,通过给每个节点相应的颜色位(Red or Black)来保证整个的树的平衡。

2、红黑树在插入和删除时不像AVL树那样经常的需要调整,平衡性要求没有AVL树高。

3、根节点必须为黑色红节点的孩子必须为黑色。

红黑树示例:

4、红黑树中空指针也是节点。

5、对于任何一个节,从该节点到其孩子中都包括相同数目的黑色节点,这点是保证平衡性的重要条件

6、空指针代表的也是黑色节点。

7、由上可知红黑树的高度对多为:log⑵(n+1)。

8、红黑树的查找效率和AVL差不多。

 9、Black Height:即经过多少个黑色节点

 

 10、1)任何一个节点的左子树至少有个内部节点(internal nodes)。

              原二叉树节点,叫做 internal node。

         2)任何一个节点 x 的 bh(x)>=h(x)。

 二、红色树的插入

1、根节点初始化为黑色

2、非根节点插入默认为红色

 

3、如果插入的节点的父节点红色,就把父节点和其兄弟节点都换成黑色节点,再看父亲节点的父亲节点是不是根节点,如果不是,也需要重新着色。

 

 

4、如果其没有兄弟节点,就需要对其进行旋转,旋转方法参考AVL的LL、RR、LR、RL,然后重新进行着色。5)

 

 5、重复这个过程

 

原视频:2021年最好懂的红黑树

 

posted @ 2022-04-05 19:40  NK-cat  阅读(171)  评论(0编辑  收藏  举报