什么叫做红黑树
说红黑树之前,我们必须先了解什么是二叉查找树(二叉排序树)。
什么是二叉查找树(二叉排序树)?
1、特性:
①、左子树上的所有结点的值都大于或等于它的根节点的值。
②、右子树上的所有结点的值都小于或等于它的根节点的值。
③、左、右子树也分别为二叉排序树。
2、图解:
3、二叉排序树的隐患
二叉排序树在理想状态下,查找某个数十分方便,但存在一些特殊隐患。
例如以9为根节点,分别插入8、7、5、6、5、4、3,这样就会形成一条长条,就失去了二叉排序树的优势了。
所以,伟大的鲁道夫·贝尔提出了红黑树的概念!
什么是红黑树(二叉排序树的升级版,要满足二叉排序树的特性)?
1、特性:
①、节点必须为黑色或红色。
②、根节点必须是黑色。
③、每个叶子节点都是黑色的空节点(NIL节点)。
④、每个红色节点的两个子节点都必须是黑色。(从每个叶子节点到根的所有路径上不能有两个连续的红色节点)。
⑤、从任一节点到其每个叶子节点节点的所有路径都必须包含相同的黑色节点数。
2、图解:
每插入一个节点,因为要满足⑤,所以必须为红色节点。
如果插入节点的前一个节点也是红色,这就不满足④的规范了,所以要通过变色或者旋转来满足红黑树的要求!!!
3、什么是变色?
为了重新符合红黑树的规则,尝试把节点红色变黑色,或者黑色变红色。
4、什么是旋转?
①、左旋转
②、右旋转
以上就是红黑树的基础认知。
如果还是没搞懂,可以去看看“小灰的一篇漫画告诉你什么是红黑树”。