对红黑树的理解(1):定义及基本性质
定义如下
红黑树(Red Black Tree) 是一种自平衡二叉查找树,
是在计算机科学中用到的一种数据结构,
典型的用途是实现关联数组。
红黑树是一种特化的AVL树(平衡二叉树),
都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,
从而获得较高的查找性能。
它虽然是复杂的,
但它的最坏情况运行时间也是非常良好的,
并且在实践中是高效的:
它可以在O(log n)时间内做查找,插入和删除,
这里的n 是树中元素的数目。
红黑树是一种特定类型的二叉树,
它是在计算机科学中用来组织数据比如数字的块的一种结构。
若一棵二叉查找树是红黑树,
则它的任一子树必为红黑树.
红黑树是一种平衡二叉查找树的变体,
它的左右子树高差有可能大于 1,
所以红黑树不是严格意义上的平衡二叉树(AVL),
但 对之进行平衡的代价较低,
其平均统计性能要强于 AVL 。
由于每一棵红黑树都是一颗二叉排序树,
因此,在对红黑树进行查找时,
可以采用运用于普通二叉排序树上的查找算法,
在查找过程中不需要颜色信息。
----摘自 百度百科
接下来说说性质:
1.结点是红色或黑色。
不然怎么叫红黑树呢
2.根节点是黑色。
很容易理解
3.所有叶子节点都是黑色(特指空叶子节点)
就是说,每一棵红黑树的叶子节点都是黑色的空节点。
4.每个红色结点的两个子结点都是黑色。
也就是说,不能有两个连续的红色节点
(但可以有两个连续黑色节点
5.. 从任一节结点到其每个叶子的所有路径都包含相同数目的黑色结点。
从这条性质很容易知道,任何一棵合法的红黑树的最长路径必定不会长出最短路径的两倍
何以见得?我们画个图
我们可以建立一个从根节点到叶子节点共有2个黑色节点(不包含叶子节点和根节点)的红黑树
如图1,根据性质2,作出根节点
图1
接下来,作一条最短路径
根据性质4可以知道,最短路径上全是黑色节点
再根据性质3,作出叶子节点
如图2
图2
同理可得,最长路径肯定是红黑相间,如图3
图3
易得结论

浙公网安备 33010602011771号