作者 | 调皮的阿广

责编 | 屠敏

下面为标准的二叉排序树

初始状态

其实想要搜索值为226的节点很简单,搜索动画过程如下:

这样不行!

这是个病!

得治!

红黑树就是一种平衡的二叉查找树,说他平衡的意思是他不会变成“瘸子”,左腿特别长或者右腿特别长。除了符合二叉查找树的特性之外,还具体下列的特性:

1. 节点是红色或者黑色

2. 根节点是黑色

3. 每个叶子的节点都是黑色的空节点(NULL)

4. 每个红色节点的两个子节点都是黑色的。

5. 从任意节点到其每个叶子的所有路径都包含相同的黑色节点。

下面为标准的红黑树,阿广建议大家对照下面的图理解上边写的红黑树的性质哦~

(黑色的NULL节点可忽略)

例如上面标准的红黑树,插入值为12的节点。

插入之后发现仍然满足红黑树的要求!

但是如果插入值为21的节点呢?

如下图所示:

先来看一下变色!

为了符合红黑树的规则,会把节点红变黑或者黑变红。下图展示的是红黑树的部分,需要注意节点25并非根节点。因为21和22链接出现红色,不符合规则4,所以把22红变黑:

但这样还是不符合规则5,所以需要把25黑变红,看下图:

接下来先讲一下什么是左旋转!通过动画举个例子吧!

左旋转思想示意图如下

通俗点讲一下,可以看下面的左旋转静态示意图

按照左旋转,对上边已经变色完成之后图进行左旋转。

可见右旋转的思想总结如下:

通俗点讲一下,可以看下面的右旋转静态示意图

接下来,对上边经过左旋转之后的图进行右旋转。

人生像红黑树一样,总是需要某种平衡

一边是给予,一边是接受

一边是付出,一边是得到

一边是耕耘,一边是收获

一边是物质,一边是精神

阿广你年过二十而未立

置身于五光十色的世俗社会

我希望阿广都能铭记

一个古老但不失色彩的道理!

“活得简单才能活得自由”

因为舍得,所以淡泊

因为朴素,难以物役

所以保持精神和内在的富有

才是平衡的前提!

牛了,这几个案例让你迅速了解AI技术!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

【END】

 热 文 推 荐 

自动驾驶激荡风云录:来自圈内人的冷眼解读

50 年人类登月史:那些不为人知的故事

☞即使在微软 Azure 上,Linux 也大有一统天下之势!

☞ 程序员 12 小时惊魂记:凌晨迁移数据出大事故!

☞5G+AI重新定义生老病死

☞干货 | 20个Python教程,掌握时间序列的特征分析(附代码)

☞ 阿里云十年,从去“IOE”到引领云原生浪潮

☞ 知名饮料制造商股价暴涨500%惊动FBI,只因在名字中加入了"区块链" ?

为什么雷军说“华为不懂研发”?

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

漫画算法:5 分钟搞明白红黑树到底是什么?相关推荐

  1. 漫画算法:5分钟搞明白红黑树到底是什么?

    注:本期二叉树部分图片和思想源自公众号:程序员小灰 ---正文--- 下面为标准的二叉排序树 初始状态 其实想要搜索值为226的节点很简单,搜索动画过程如下: 这样不行! 这是个病! 得治! 红黑树就 ...

  2. 【数据结构】史上最好理解的红黑树讲解,让你彻底搞懂红黑树

    目录 一.红黑树简介 二.为什么需要红黑树? 三.红黑树的特性 四.红黑树的效率 4.1 红黑树效率 4.2 红黑树和AVL树的比较 五.红黑树的等价变换 六.红黑树的操作 6.1 旋转操作 6.2 ...

  3. 红黑树分为红和黑有什么好处_彻底搞懂红黑树

    红黑树和c++ 虚拟继承内存分布 几乎成了我的死敌,因为完全没用过,所以导致每次看懂了之后都忘了(也许不是真的看懂了,有些关键性的东西没理解透),这次准备把这两个难题(其实也不难)仔细看懂,然后再写一 ...

  4. 算法导论第十三章 红黑树

    写在前面:这一章真的把我害惨了,之前至少尝试看过3遍,每次看之前都下定决定一定要把它拿下,可是由于内容较多,深度够深,以致于每次要不是中途有什么事放弃了就跳过了,要不是花时间太多仍然不能理解而放弃.这 ...

  5. 红黑树和平衡二叉树的区别_一文搞懂红黑树

    文章参考 | https://segmentfault.com/a/1190000012728513 前言 当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力! 二叉树 在了解红黑树 ...

  6. 终于搞懂红黑树!--红黑树的原理及操作

    红-黑-树 介绍: 红黑树( Red black tree)是种自平衡二叉查找树,在计算机科学中用到的一种数据结构. 它是在1972年由 Rudolf Bayer发明的当时被称为平衡二叉B树( sym ...

  7. 算法笔记:二叉树,红黑树

    目录 <树>知识点: 二叉查找,搜索,排序树BST: 平衡二叉树:AVL树: 平衡二叉树的目的: 平衡二叉树的常用方法: 红黑树:RB Tree 红黑树性质: 旋转和颜色变化的规律: 红黑 ...

  8. 算法导论笔记:13-02红黑树插入

    红黑树的插入可在O(lg n)完成,红黑树的插入类似于二叉搜索树的插入,为了尽量维护红黑树的性质,将插入的新节点标记为RED,然后调用RB-INSERT-FIXUP对红黑树的性质进行维护,RB-INS ...

  9. 算法导论 第十三章 红黑树(python)-1插入

    红黑树是上一章二叉搜索树的改进,实现一种平衡 ,保证不会出现二叉树变链表的情况,基本动态集合操作的时间复杂度为O(lgn) 实际用途:c++stl中的set,map是用他实现的 红黑树的性质: 1.每 ...

最新文章

  1. UIBezierPath画圆弧的记录
  2. c++ svd实例整理
  3. 0基础学python看什么书-0基础学Python入门书籍应该看什么?
  4. 047_输出一下byte的所有值
  5. 会计记忆总结之二:会计要素和会计科目
  6. C语言实现通用链表初步(四)----双向链表
  7. 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
  8. CSS 中的内联元素、块级元素以及display的各个属性的特点
  9. superset mysql数据源配置_superset 性能优化1-已经使用中的superset更改默认数据源sqlite到mysql...
  10. Fedora/RedHat上使用Docker命令搭建Mysql服务器
  11. Codeforces 437D 贪心+并查集
  12. 一主多备几影响 oracle,1个主库配置多个备库的问题
  13. windows 安装php7.4并配置phpstorm环境
  14. 使用notebook 笔记(1)
  15. 欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 最新版本:20110222
  16. 阿里云短信验证码开发
  17. IDEA项目名称的中文和数字乱码文字
  18. sql grop by having order by 的用法
  19. ESP32S3系列--代码执行速度优化(从PSRAM执行代码)
  20. 如何将图像保存至计算机G7X,佳能官方教程:如何将G7X通过WiFi与电脑连接.pdf

热门文章

  1. [转贴] 电脑族请关爱自己的身体--远离“电脑病”完全实用手册
  2. 第3章 关系数据模型
  3. Python+Opencv图像处理新手入门教程(四):视频内容的读取与导出
  4. 【学习笔记】计算机导论之操作系统和文件管理
  5. python里order什么意思_python中OrderedDict的使用方法详解
  6. php object 对象不存在。增加对象_PHP 闭包那点事儿
  7. 《推荐系统笔记(十六)》tf-idf与基于内容的推荐(简单的酒店推荐)
  8. “在 GitHub 用十年攒的 54k+ Star,一个误操全没了”
  9. 第十一届中国开源黑客松+中国程序员节重磅来袭,这里将有你不能错过的精彩。...
  10. 视频内容理解核心技术解密:Partial re-ID 在成片体检中的技术实践