一、红黑树的概念
1.1简介
红黑树和AVL树一样,也是一种自平衡的二叉搜索树,只不过它的平衡并不像AVL树那么严格(AVL树要求任意节点左右子树的高度差不超过1),所以在树的高度上会比AVL树高一些,搜索的速度也会慢一些,但它插入与删除只需要进行O(1)级别的旋转操作,而AVL树的删除需要进行O(logn)的旋转,因此综合搜索、插入、删除这几个方面,红黑树的性能会优于AVL树,也正是如此,在现实生活中红黑树的应用也更多。
1.2红黑树的五条原则
红黑树具有五条原则,只要满足了这五条原则,一棵二叉搜索树就是红黑树,也保证了红黑树的平衡,后续插入、删除后的平衡操作,也以这五条准则为标准。
- 红黑树中的节点只能有红色和黑色两种颜色
- 根节点一定是黑色
- 叶子节点一定是黑色节点(所有空节点都涂为黑色,但在具体实现时不对空节点进行处理,可见下示例图)
- 红色节点的子节点只能是黑色节点(从这条准则中我们可以得到一些推论:红色节点的父节点也一定是黑色节点,若父节点是红色节点,则父节点显然不满足定义。从某一节点到子节点的路径中不可能有连续的两个红色节点)
- 从任意节点到叶子节点的任意路径上,黑色的节点数量一定相同
示例1

示例2

示例3

1.3红黑树与B树(B-树)的关系
在学习红黑树的插入、删除后的平衡操作前,最好先了解一下B树相关的概念(可见:请问,你心里有B树吗??(B树添加、删除操作详细图解)),这是因为当我们将一个黑色节点与相邻的红色节点组合成一个B树节点,红黑树与4阶B树(2-3-4树)是完美匹配的,而后续进行的平衡操作,在逻辑上也与B树完全相同。
红黑树

B树

我们可以知道,B树是

本文介绍了红黑树的基本概念,包括其特点与平衡原则,并详细解析了红黑树的插入操作及平衡调整过程。
最低0.47元/天 解锁文章
299

被折叠的 条评论
为什么被折叠?



