对红黑树的理解(1):定义及基本性质

定义如下

红黑树(Red Black Tree) 是一种自平衡二叉查找树,
是在计算机科学中用到的一种数据结构,
典型的用途是实现关联数组。
红黑树是一种特化的AVL树(平衡二叉树),
都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,
从而获得较高的查找性能。
它虽然是复杂的,
但它的最坏情况运行时间也是非常良好的,
并且在实践中是高效的:
它可以在O(log n)时间内做查找,插入和删除,
这里的n 是树中元素的数目。
红黑树是一种特定类型的二叉树,
它是在计算机科学中用来组织数据比如数字的块的一种结构。
若一棵二叉查找树是红黑树,
则它的任一子树必为红黑树.
红黑树是一种平衡二叉查找树的变体,
它的左右子树高差有可能大于 1,
所以红黑树不是严格意义上的平衡二叉树(AVL),
但 对之进行平衡的代价较低,
其平均统计性能要强于 AVL 。
由于每一棵红黑树都是一颗二叉排序树,
因此,在对红黑树进行查找时,
可以采用运用于普通二叉排序树上的查找算法,
在查找过程中不需要颜色信息。
----摘自 百度百科

接下来说说性质:

1.结点是红色或黑色。

不然怎么叫红黑树呢

2.根节点是黑色。

很容易理解

3.所有叶子节点都是黑色(特指空叶子节点)

就是说,每一棵红黑树的叶子节点都是黑色的空节点。

4.每个红色结点的两个子结点都是黑色。

也就是说,不能有两个连续的红色节点

(但可以有两个连续黑色节点

5.. 从任一节结点到其每个叶子的所有路径都包含相同数目的黑色结点。

从这条性质很容易知道,任何一棵合法的红黑树的最长路径必定不会长出最短路径的两倍

何以见得?我们画个图

我们可以建立一个从根节点到叶子节点共有2个黑色节点(不包含叶子节点和根节点)的红黑树

如图1,根据性质2,作出根节点

图1图1

接下来,作一条最短路径

根据性质4可以知道,最短路径上全是黑色节点

再根据性质3,作出叶子节点

如图2

图2图2

同理可得,最长路径肯定是红黑相间,如图3

图3图3

易得结论

参考资料 https://www.cnblogs.com/skywang12345/p/3245399.html

posted @ 2021-02-18 23:30  稻香十里散风里  阅读(188)  评论(0)    收藏  举报