树(三)红黑树与平衡二叉树的区别

树(三)红黑树与平衡二叉树的区别树 一 二叉查找树树 二 平衡二叉树 1 什么样的数据结构称为红黑树红黑树 RedBlackTree 是一种自平衡的二叉查找树 它与平衡二叉树相同的地方在于都是为了维护查找树的平衡而构建的数据结构 它的主要特征是在二叉查找树的每个节点上添加了一个属性表示颜色 颜色有两种 红与黑 1 1 性质每个节点是红色或者黑色 根节点是黑色 所有叶子节点都是黑色

树(一)二叉查找树

树(二)平衡二叉树

1 什么样的数据结构称为红黑树

        红黑树(Red Black Tree)是一种自平衡的二叉查找树,它与平衡二叉树相同的地方在于都是为了维护查找树的平衡而构建的数据结构,它的主要特征是在二叉查找树的每个节点上添加了一个属性表示颜色,颜色有两种,红与黑。

1.1 性质

  • 每个节点是红色或者黑色;
  • 根节点是黑色;
  • 所有叶子节点都是黑色(叶子是NIL节点,也称为外节点);
  • 每个红色节点的子节点都是黑色(从每个叶子节点到根节点的所有路径上不能有两个连续的红色节点);
  • 从红黑树的任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点(包含黑色节点的数目称为该节点的黑高度)。

1.2 示例

        下图所示就是一棵红黑树,首先它是一棵查找二叉树,同时也满足了红黑树所必须的特性。

树(三)红黑树与平衡二叉树的区别

 

2 红黑树与平衡二叉树的区别

  •  平衡二叉树通过保持任一节点左、右子树高度差的绝对值不超过1来维持二叉树的平衡;而红黑树是根据查找路径上黑色节点的个数以及红、黑节点之间的联系来维持二叉树的平衡。
  • 平衡二叉树在插入或者删除节点时为了保证左右子树的高度差会进行旋转,这一个旋转根据数据的不同旋转的复杂度也会不一样,所以在插入或者删除平衡二叉树的节点时,旋转的次数不可知,这也导致在频繁的插入、修改中造成的效率问题;红黑树在执行插入修改的操作时会发生旋转与变色(红变黑,或者黑变红)以确保没有一条路径会比其它路径长出两倍。
  • 总体来说,在插入或者删除节点时,红黑树旋转的次数比平衡二叉树少,因此在插入与删除操作比较频繁的情况下,选用红黑树。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177395.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:36
下一篇 2026年3月26日 下午7:37


相关推荐

  • sendfile相关「建议收藏」

    sendfile相关「建议收藏」考虑将一个本地文件通过socket发送出去的问题。我们通常的做法是:打开文件fd和一个socket,然后循环地从文件fd中read数据,并将读取的数据send到socket中。这样,每次读写我们都需要两次系统调用,并且数据会被从内核拷贝到用户空间(read),再从用户空间拷贝到内核(send)。而sendfile就将整个发送过程封装在一个系统调用中,避免了多次系统调用,避免了数据在内核空间

    2022年5月8日
    38
  • 初级程序员面试题总结(一):

    本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。1,谈一谈spring。答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容…

    2022年4月8日
    59
  • vue引入echarts

    vue引入echarts一 cmd 命令 vuecreatedem 二 项目命令窗口 npminstallec 三 main js 全局引入形式 import asechartsfro echarts Vue prototype echarts echarts 四 index vue 页面使用 template divclass app divclass app template

    2026年3月20日
    2
  • WEB日志格式

    WEB日志格式WEB日志格式日志格式类型:常见日志格式:参考:WEB日志格式CustomLogFormats:普通日志格式日志格式类型:目前常见的WEB日志格式主要由两类Apache的NCSA日志格式,NCSA格式分为NCSA普通日志格式(CLF)NCSA扩展日志格式(ECLF)IIS的W3C日志格式目前最常用的是NCSA扩展日志格式(ECLF…

    2022年6月10日
    34
  • noip2012借教室_noip小学组

    noip2012借教室_noip小学组这个题首先很容易想到枚举1-m,再一个一个加起来,判断一下(最直白的暴力)于是又很容易想到用差分数组可以优化一下。就像这样#include<iostream>#include<cstdio>usingnamespacestd;constintmaxn=1000005;intd[maxn],s[maxn],t[maxn],r[maxn];…

    2022年8月22日
    7
  • 电脑wlan和以太网怎么桥接_电脑无线网和以太网桥接

    电脑wlan和以太网怎么桥接_电脑无线网和以太网桥接YouneedtobridgetheinterfacewhichishavinganIPwiththewifimodule.1)hostapd-iwlan0/etc/hostapd.conf-B2)ifconfigwlan0up3)ifconfigeth00.0.0.04)ifconfigwlan00.0.0.05)…

    2022年7月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号