zoukankan      html  css  js  c++  java
  • 自顶向下的红黑树

    红黑树是一种自平衡二叉查找树,典型用途是构造关联数组和集合(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 树在实践中不经常使用。
  • 相关阅读:
    入侵特斯拉——智能汽车安全性分析
    D-Link系列路由器漏洞挖掘入门
    工控安全入门之 Ethernet/IP
    浅谈JS数据类型存储问题
    【备忘】12306购票必杀技
    制作炫酷的专题页面
    杂记(下)
    杂记(上)
    跨域请求解决方案
    好用的表单验证插件
  • 原文地址:https://www.cnblogs.com/jdbc2nju/p/7823530.html
Copyright © 2011-2022 走看看