红黑树

红黑树(Red-Black Tree, R-B Tree)是一种自平衡的二叉查找树。在红黑树的每个节点上都多出一个存储位表示节点的颜色,颜色只能是红(Red)或者黑(Black)。

红黑树的特性如下。

◎ 每个节点或者是黑色的,或者是红色的。

◎ 根节点是黑色的。

◎ 每个叶子节点(NIL)都是黑色的。

◎ 如果一个节点是红色的,则它的子节点必须是黑色的。

◎ 从一个节点到该节点的子孙节点的所有路径上都包含相同数量的黑色节点。具体的数据结构如图4-15所示。

 

 


 

红黑树的左旋

对a节点进行左旋,指将a节点的右子节点设为a节点的父节点,即将a节点变成一个左节点。因此左旋意味着被旋转的节点将变成一个左节点,具体流程如图4-16所示。

 

 


红黑树的右旋

对b节点进行右旋,指将b节点的左子节点设为b节点的父节点,即将b节点设为一个右节点。因此右旋意味着被旋转的节点将变成一个右节点,具体流程如图4-17所示。

 

posted @ 2020-06-02 16:06  技术白菜  阅读(0)  评论(0)    收藏  举报