红黑树

简介:

红黑树:红黑树是一棵二叉搜索树,树中的每一个结点的颜色不是黑色就是红色。可以把红黑树视为一棵扩充的二叉树,用外部结点表示空指针。

特性1:根结点和所有外部结点的颜色是黑色。

特征2:从根节点到外部结点的途中没有连续两个结点的颜色是红色。

特征3:所有从根节点到外部结点的路径上都有相同数目的黑色结点。

从红黑树中任意一结点x出发(不包括结点x),到达一个外部结点的任一条路径上的黑结点的个数叫做x的黑高度,亦称之为结点的阶。红黑树的黑高度定义为根节点的黑高度。

红黑树中的结点:红色结点、黑色结点、和外部结点。

结论1:设从根节点到外部结点的路径长度(path length, pl)为该路径上指针的个数,如果P与Q为红黑树中的两条从根节点到外部结点的路径,则有:PL(P)<=2PL(Q)。

结论2:设h是一棵红黑树的高度(不包括外部结点),n是树中内部结点的个数,r是根节点的黑高度,那么有a、h<=2r, b、n>=2r-1, 3、h<=log2(n+1)









本文转自NewPanderKing51CTO博客,原文链接:http://www.cnblogs.com/newpanderking/p/3870579.html ,如需转载请自行联系原作者





相关文章
|
30天前
|
关系型数据库 容器
红黑树的简单介绍
红黑树的简单介绍
19 0
|
3月前
|
存储 应用服务中间件 调度
随处可见的红黑树详解
随处可见的红黑树详解
39 0
|
3月前
|
存储 调度
红黑树总结
红黑树总结
35 0
|
3月前
|
调度
随处可见的红黑树
随处可见的红黑树
|
4月前
|
存储 Linux 调度
C++【红黑树】
C++【红黑树】
36 0
|
5月前
|
算法 Java Linux
C++红黑树
C++红黑树
|
9月前
|
JavaScript
红黑树是怎么来的
本文从二叉搜索树倾斜的原因(自上而下生长)出发,推出维持树形数据结构平衡性的关键:自下而上裂变式生长,进而引出裂变式生长的理论模型:2-3 树。由于 2-3 树实现上的复杂性,引出其实现上的替代品:红黑树。最后,我们讨论如何通过左旋、右旋以及颜色翻转这“三板斧”来维护红黑树插入和删除元素后的动态平衡。
63 2
红黑树是怎么来的
|
10月前
红黑树
红黑树
45 0
|
10月前
|
C++
C++之红黑树
C++之红黑树
57 0

热门文章

最新文章