自顶向下的红黑树

红黑树是一种自平衡二叉查找树,典型用途是构造关联数组和集合(java中的TreeMap和TreeSet)
 
性质1. 节点是红色或黑色。
性质2. 根节点是黑色。
性质3 每个叶节点(NIL节点,空节点)是黑色的。
性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
 
时间复杂度O(log N)【ps: Θ渐进上下界, O渐进上界(最坏情况), Ω渐进下界(最好情况)】
 
结论一:设从跟到外部节点的路径长度(PathLength,PL)为该路径上指针的个数,P与Q是红黑树上两条从跟到外部节点的路径,则有:
                                                                             PL(P)<=2PL(Q)  
结论二:设 红黑树高度h(不包括外部节点),内部节点个数n, 根节点的黑高度r,则以下关系成立:
                                                                           (1)h<=2r
                                                                           (2) n>= 2的r次方  - 1
                                                                           (3) h<=2log2(n+1)      
红黑树是2-3-4树的一种等同。换句话说,对于每个 2-3-4 树,都存在至少一个数据元素是同样次序的红黑树。在 2-3-4 树上的插入和删除操作也等同于在红黑树中颜色翻转和旋转。这使得 2-3-4 树成为理解红黑树背后的逻辑的重要工具,这也是很多介绍算法的教科书在红黑树之前介绍 2-3-4 树的原因,尽管 2-3-4 树在实践中不经常使用。
原文地址:https://www.cnblogs.com/jdbc2nju/p/7823530.html