zoukankan      html  css  js  c++  java
  • 红黑树

    红黑树规定:

    • 性质 1:每个节点要么是红色,要么是黑色。
    • 性质 2:根节点永远是黑色的。
    • 性质 3:所有的叶节点都是空节点(即 null),并且是黑色的。
    • 性质 4:每个红色节点的两个子节点都是黑色。(从每个叶子到根的路径上不会有两个连续的红色节点)
    • 性质 5:从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点。

    在插入的的时候,通常把新项作为叶子节点放在树中。如果我们把该叶子节点涂成黑色,那么一定违反性质5,所以插入一定是涂成的红色。

    红黑树的插入:

    1,将红黑树当成一个二叉查找树,将节点插入

    2,将插入节点着色为红色

    3,通过一系列旋转着色操作,使之重新成为一颗红黑树

    AVL树和红黑树:

    1,红黑树不满足AVL树的平衡条件(平衡因子 -1,0,1),

    2,满足红黑树的规则带来的好处是增删节点的旋转次数的降低,最多不超过3次。

    3,在插入节点的时候,AVL树和红黑树都最多需要2次旋转操作,但是在删除节点的时候,AVL树要考虑整个路径上的平衡情况,时间复杂度是O(logN),红黑树最多3次。O(1)

    4,AVL是严格平衡树,在插入删除时,更容易不平滑,意味着更高的旋转频率。但是AVL树因为严格平滑,所以AVL树的高度为优于红黑树。

    结论:在涉及大量查找操作,少量增删操作,AVL要优于红黑树,反正红黑树优于AVL树。

    红黑树应用:。。。。

  • 相关阅读:
    web网站开发反面教材
    phpstudy 做的后台长时间运行的脚本,设置了脚本运行时间还是40秒就返回500,用的apache2.4.39
    PHP_EOL
    web文件下载,a标签文件下载,php文件下载
    邮件发送
    网站调用qq第三方登录
    微信Pcweb登录简介
    JqueryOn绑定事件方法介绍
    php+ajax文件上传
    php操作数组函数
  • 原文地址:https://www.cnblogs.com/jellyj/p/9905484.html
Copyright © 2011-2022 走看看