红黑树大致原理讲解(不涉及源码分析)

1.什么是红黑树

R-B Tree,全称是 Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。

2.红黑树的特性

(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

3.左旋

在这里插入图片描述
左旋总结了3个步骤,假如我们将x左旋:
1.X的右子节点Y变为新的父节点
2.X就变为Y的左子节点
3.Y原来的左子节点变为X的右子节点

4.右旋

在这里插入图片描述
右旋同样总结了3个步骤,假如我们将Y进行右旋:
1.Y的左子节点变为父节点
2.Y就变为X的右子节点
3.原来X的右子节点变为Y的左子节点

5.插入

插入就涉及了变色、左旋、右旋、还有红黑树特性的运用,这个就比较复杂。
但是大致的步骤就是变色->左旋或者右旋->变色这样的步骤。如果最后满足红黑树的特性了,那么说明这是一个真正的红黑树了。
如果有小伙伴对插入过程比较疑惑的可以看这篇文章
什么是红黑树

发布了80 篇原创文章 · 获赞 7 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_42332821/article/details/105633215
今日推荐