首先咱们要说一个事情是  红黑树其实就是一种特殊的二叉平衡树。 那咱们奇怪了,二叉平衡树哪里不好呢? 需要引入这么个改进版。 一般改进的东西肯定比不改进的东西牛,那么牛在哪里呢?

回忆一下二叉平衡树的特点是 左节点的值小于 根节点 小于 右节点。那么,如果我们有 1 2 3 4 四个元素,插入二叉平衡树,可能出现下面的情况吗?

这两种情况都可能出现吧。什么?还有左边这种情况?直觉上就觉得不太对吧。

是的,少年,你的直觉是对的。左边这种情况效率就比较低。想想,如果我们要找 1. 左边这种情况找3次 而右边这种情况两次就够了。

所以引出了树里面一个很重要的概念 “平衡”,就是右边这种情况啦。当然,右边也不是绝对平衡,把右边的1 去掉就是平衡。 但是凡事很难尽善尽美嘛。差不多平衡我们也是可以接受的。而红黑树就是追求这种平衡。红黑树的定义比平衡二叉树复杂很多,没办法啊,你多了很多性质啊,规则不复杂点,一般就很难保证嘛。

红黑树的定义有四条:

  1. 每个节点颜色不是黑色,就是红色
  2. 根节点是黑色的
  3. 如果一个节点是红色,那么它的两个子节点就是黑色的(没有连续的红节点)
  4. 对于每个节点,从该节点到其后代叶节点的简单路径上,均包含相同数目的黑色节点

那么我们简单说明一下,以上图右边的部分来简单解释一下:

3 是根节点  1  4 是叶子节点, 2是1的父节点, 4是1的叔叔节点, 毕竟2和4是兄弟嘛。

这里还要特别注意一下,通常我们初始化一个新节点,我们通常假设该节点是红色。因为这样上面4条性质更容易被满足,换言之,我们可以尽可能少的调整。

简单来说,我们看这个性质1, 不是黑色就是红色,满足。(我们默认红色)

性质二,根节点为黑色(如果没有根节点,我们把加入的这个节点变成 黑色,如果有,不影响)

性质3, 每个节点是红色,两个子节点是黑色。这个由于我们不知道插入在哪里,所以不清楚,疑似不满足

性质4, 每个节点到后代叶子节点的黑色节点数目相同。(满足,我们加的是红色节点啊默认)

今天关于红黑树就简单说到这里。最近改论文改的很累。不过坚持每天过来更新。我个人的习惯就是遇到一个比较难的问题,就一点一点的看。千万不要贪多图快。下一篇博客,咱们接着讨论红黑树的基本操作,即如何保持红黑树平衡特性。 咱们每天学一点点,再难的问题最终都会被我们解决

红黑树-面对大部头咱们使出堵门绝招~庖丁解牛相关推荐

  1. 红黑树 键值_查找(一)史上最简单清晰的红黑树讲解

    http://blog.csdn.net/yang_yulei/article/details/26066409 查找(一) 我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然 ...

  2. 红黑树的删除_Python实现红黑树的删除操作

    上一篇文章使用Python实现了红黑树的插入操作.参考:Python实现红黑树的插入操作本篇文章使用Python实现红黑树的删除操作.先将红黑树的5条特性列出来:1. 节点是红色或黑色.2. 根节点是 ...

  3. Python实现红黑树的删除操作

    Python实现红黑树的删除操作 本专栏的上一篇文章使用Python实现了红黑树的插入操作.参考:https://blog.csdn.net/weixin_43790276/article/detai ...

  4. NGINX下的红黑树源码详解(附 流程图和GIF)

    之前博主稍微讲解了下红黑树的原理,那么在这篇博客博主想要把红黑树讲的更加的透彻,以便于更多的人了解红黑树 (本博客会更加详细的介绍之前的博客没介绍到的,所以各位看官不同再回去翻看博主之前那篇红黑树的原 ...

  5. 从2-3树到 红黑树

    原文:   查找(一)史上最简单清晰的红黑树讲解 二叉查找树由于可能会非常的不均衡. 所以用2-3树. 采用上上浮的方法,顶多多两倍节点数. 红黑树一直是数据结构中的难点,大部分关于算法与数据结构的学 ...

  6. 查找(一)史上最简单清晰的红黑树讲解 http://blog.csdn.net/yang_yulei/article/details/26066409

    查找(一)史上最简单清晰的红黑树讲解 2014-05-18 00:05 4037人阅读 评论(6) 收藏 举报 分类: 数据结构(7) 算法(4) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  7. 用最简单的话讲最明白的红黑树

    前言 首先初生牛犊不怕虎,我想反驳一下许多许多大佬对红黑树中颜色属性的看法.如有冒犯,请忍回去. 大佬的看法: 红黑树是对2-3-4阶树(多路平衡查找树)概念的实现.红色节点是为了和黑色父节点结合形成 ...

  8. 红黑树(Red Black Tree,RBTree)

    一.概念 红黑树是一种自平衡二叉查找树(二叉排序树).与平衡二叉树(avl树)不同的是,红黑树是弱平衡二叉树,即它的左右子树高度差有可能大于1,但不超过一倍. 二.5大性质 每个节点要么是黑色, 要么 ...

  9. 红黑树简介及左旋、右旋、变色

    红黑树简介及左旋.右旋.变色 红黑树(Red Black Tree)是一种自平衡二叉搜索树(二叉查找树),是一种特殊的二叉搜索树,在进行插入和删除时通过特定操作保持二叉树自身的平衡,从而获得较高的查找 ...

最新文章

  1. 数据结构 单链表 C
  2. 后台服务显示右下角弹窗 -- system权限创建用户权限进程
  3. webscoket绑定php uid,Think-Swoole之WebSocket客户端消息解析与使用SocketIO处理用户UID与fd关联...
  4. Unity协程(Coroutine)原理深入剖析再续
  5. IPLAT62--新增
  6. Android Studio 3.1无法导入模块的解决办法
  7. 矩阵计算 动手学深度学习 pytorch
  8. ISD9160学习笔记08_结项总结
  9. 2020年计算机设计大赛参赛回顾与总结
  10. ipv4v6双栈技术_什么是IPv6双栈技术
  11. Stitcher: Feedback-driven Data Provider for Object Detection 论文学习
  12. 浏览器LocalStorage和SharedWorker跨标签页通信-连载2
  13. [sudo rm -rf /bin/] Linux误删除/bin目录恢复
  14. 基于高分辨率影像城市绿地信息提取_[转]ENVI支持下利用高分辨率影像城市绿地信息提取方案...
  15. 软解码与硬解码区别linux,软解码和硬解码哪个好 软解码和硬解码有什么区别
  16. onsubmit和submit事件处理函数怎么不生效呢?
  17. 大概是全网最详细的Electron ipc 讲解(三)——定情信物传声筒port
  18. 中科爱讯WiFi探针在贵宾客户提醒领域的应用
  19. 九州云出席全球分布式云大会,基于5G MEC的车路协同创新引关注
  20. 如何用“大小周”搞垮一个公司?

热门文章

  1. Exonerate安装,执行./configure 时出现 aclocal.m4错误
  2. USB Audio芯片TYPE-C 型号YW2I2 UAC1.0 Feedback 通话功能
  3. 人生短暂,持之以恒地做一件事情就会成功(每当烦躁心急如焚的时候就读读这篇文章吧)
  4. 【板栗糖GIS】arcmap—如何给图层标注加上外部轮廓线
  5. 油井动液面远程监测系统,将复杂工作简单化
  6. Dell 755 安装PCI 简易通讯控制器驱 WIN2K3 驱动
  7. 基于卷积神经网络故障诊断模型的 t-SNE特征可视化
  8. Animate 动画样式
  9. IDEA项目Module X must not contain source root Y. The root already belongs to module Z
  10. 在货仓,连锁分店使用条码数据采集器