当前位置: 首页 > news >正文

红黑树动画演示

红黑树简介

  1. 每个节点非红即黑;
  2. 根节点为黑;
  3. 叶子节点(NIL哨兵)为黑;
  4. 红色节点的子节点必为黑(即无连续红节点);
  5. 从任意节点到叶子的路径包含相同黑节点数(定义黑高bh)
  6. 任一节点左右子树的高度相差不超过两倍

左根右, 根叶黑, 不红红,黑路同。

红黑树也是一种二叉搜索树,也是为了尽量平衡二叉搜索树的,只不过策略采用的和AVL不一样。 AVL是计算层高,但是这个要有5个条件都满足才行。

为什么要五个条件这么复杂呢? 原因是这样的规则,会将树的平衡程度放低,没有AVL树那么严格的平衡,随之而来的便是,我们也没有那么勤快的整理整棵树。因为律法宽松,所以抓的人少,你可以简单的这么认为。

红黑树的排布

首先我们要记住上面提到的四大原则,这个原则是插入时条件判断的原则。并不是整个红黑树的原则。这是两个场景。总之根据这四个原则,能够构建出符合红黑树原则的树!

左根右, 根叶黑, 不红红,黑路同。

  • 左根右,代表 左 > 根 > 右。 实际上是BST的规则
  • 根叶黑: 根节点和叶子节点,是黑色的!如果没有叶子节点,那我们的空哨节点也是黑色的。
  • 不红红: 代表插入元素的时候不允许出现两个红色节点连接到一起。这个动画中观察即可!
  • 黑路同: 代表根节点到各大叶子节点经历的黑色节点是一样的数量。

这个有点子复杂, 对比平衡树,规则要多得多。因为判断失衡的条件是,不满足以上5条规则。随便一个都能触发。

调整的时候,要看爷爷,看叔叔,还看叔叔的颜色。颜色不一样调整方式不一样。

  • 首先我们落入一个节点的时候,按照二叉搜索树的方式落!该在哪里就是在哪里。
  • 落的新点,全都按做是红色节点,注意这时候判断失衡已经不是计算层高了,而是看是不是两个红色的相连。两个红色相连就得调整!因为已经不符合“红色节点的子节点一定为黑”这个规则了。
  • 调整,这环节分三路
    • 插入节点是根节点
    • 插入节点的叔叔是红色的
    • 插入节点的叔叔是黑色的

这三路用图表示下哈:

红黑树构建过程

红黑树 VS AVL

  • AVL因为更加均衡,在查询的时候效率更高
  • 红黑树因为排布的次数少,在添加删除方面效率更高。
http://www.dtcms.com/a/443159.html

相关文章:

  • 当“技能拼装”遇上“多智能体协奏”——Microsoft Agent Framework 与 Semantic Kernel 全维度深度拆解与实战指南
  • 那些网站可以做淘宝店铺推广wordpress 平台
  • 云原神官方网站正版下载郑州网站优化的微博_腾讯微博
  • 做蛋糕招聘网站wordpress七牛云使用
  • 网站开发项目技能比赛获奖报道h5创建网站
  • 深圳网站维护制作电子商务网站创建方案
  • 摄影师网站html5房地产招新人的坑
  • Effective Python 第38条:简单的接口应该接受函数,而不是类的实例
  • 彩票理财网站建设做毛绒玩具在什么网站上找客户
  • Python f-string 用法详解
  • 广州做网站哪间公司好广东网站建设公司电话
  • 怎样在工商网站做遗失wordpress批量修改文章内链接
  • 百度网站v2升级到v3怎么做培训学校招生方案
  • 网站流量转化seo的宗旨是
  • [YMOJ]现代化开源OJ(在线编程)平台技术分享
  • 长沙自适应网站制作wordpress 页面 插件
  • 徐州的网站设计公司企业管理
  • 企业网站优化方案模板学做php网站有哪些
  • 网站建设需准备什么软件北京网站搭建开发
  • 网站稳定期怎么做海外精品网站建设
  • apache 配置网站公司域名注册查询
  • 浅谈高校图书馆网站建设公司装修费分几年摊销
  • 从工具到语境:Anthropic 双文启示下的 AI 代理工程实践心得
  • 做5173这样的网站要多少人5 网站建设进度表
  • 广东专业的网站制作江门cms模板建站
  • 教育机构网站制作模板宁波seo外包代运营
  • 网站建设的作用和用途做网站 学什么
  • 成都网站推广优化公司形容网站做的好处
  • Java学习笔记Day15
  • 湘潭自助建站系统展览馆设计公司排名