https://blog.csdn.net/chudelong1/article/details/82698010

感谢,自己记个笔记

二叉查找树(BST)具备什么特性呢?

1.左结点小于或等于根结点的值。

2.右结点大于或等于根结点的值。

3.左、右子树也分别为二叉排序树。

查找 10

很方便查找,等同于二分法查找。

缺点:

如果依次插入如下五个节点:7,6,5,4,3。

虽然也是二叉排序树,这样性能就会很差了。

下面开始说 红黑树

1.节点是红色或黑色。

2.根节点是黑色。

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

4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

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

下图中这棵树,就是一颗典型的红黑树:

至于怎么插入数据,一定注意 插入完数据之后要符合上面的所有规则。

如果不符合规则呢?那么要做的操作包括 变色(调整颜色)、旋转(左旋转、右旋转)

变色好理解,就是红的变黑的,黑的变红的。

旋转呢?这也是红黑树自平衡的一个重要操作。

左旋转:

逆时针旋转红黑树的两个节点,使得父节点被自己的右孩子取代,而自己成为自己的左孩子。说起来很怪异,大家看下图:

图中,身为右孩子的Y取代了X的位置,而X变成了自己的左孩子。此为左旋转。

右旋转:

顺时针旋转红黑树的两个节点,使得父节点被自己的左孩子取代,而自己成为自己的右孩子。大家看下图:

图中,身为左孩子的Y取代了X的位置,而X变成了自己的右孩子。此为右旋转。

不用考虑为什么,就是为了保持平衡!就是为了解决二叉排序树瘸腿的问题的。

转载于:https://www.cnblogs.com/duoba/p/11409791.html

红黑树二叉查找树二叉排序树的理解相关推荐

  1. 二叉排序树、平衡二叉树、红黑树、B树、B+树

    全民制作人们,大家好.我是练习时长两天半的个人练习册,喜欢B树 ,B+树, BST树, AVL树,来 red black  ~ 目录 一.二叉排序树(BST树) 1.1二叉排序树的定义 1.2二叉排序 ...

  2. 从二叉查找树到平衡树:avl, 2-3树,左倾红黑树(含实现代码),传统红黑树...

    参考:自平衡二叉查找树 ,红黑树, 算法:理解红黑树 (英文pdf:红黑树) 目录 自平衡二叉树介绍 avl树 2-3树 LLRBT(Left-leaning red-black tree左倾红黑树 ...

  3. 红黑树效率为甚恶魔是log_Linux内核-深入理解红黑树与B+树应用场景

    一.红黑树和B树应用场景有何不同? 2者都是有序数据结构,可用作数据容器.红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树.B树多用在内存里放不下,大部分数据存储 ...

  4. 从2-3树理解红黑树

    说起红黑树就头痛,在大学时就没搞懂,看的晕晕乎乎,理解不了.直到前几天在极客时间的<数据结构与算法之美>专栏中的<26 | 红黑树(下):掌握这些技巧,你也可以实现一个红黑树 > ...

  5. 408数据结构学习笔记——二叉排序树、二叉平衡树、红黑树

    目录 1.二叉排序树 1.1.二叉排序树的基本概念 1.2.二叉排序树的查找代码实现 1.3.二叉排序树的插入 1.4.二叉排序树的删除 1.5.二叉排序树的查找效率 1.6.二叉排序树的缺陷 2.平 ...

  6. 红黑树(Red-Black Tree,RBT)

    1.红黑树 强烈推荐!!算法交互式网站: Red/Black Tree 在insert左侧框输入要插入的数字,然后点击insert就会按红黑树规则进行插入 1.1 什么是红黑树? 红黑树是一种平衡二叉 ...

  7. 遍历HashMap源码——红黑树原理、HashMap红黑树实现与反树型化(三)

    本章将是HashMap源码的最后一章,将介绍红黑树及其实现,HashMap的remove方法与反树型化.长文预警~~ 遍历HashMap源码--红黑树原理.HashMap红黑树实现与反树型化 什么是红 ...

  8. Android技术栈(五)HashMap(包括红黑树)与ArrayMap源码解析

    1 总览 本文会对 Android 中常用HashMap(有红黑树)和ArrayMap进行源码解析,其中 HashMap 源码来自 Android Framework API 28 (JDK=1.8) ...

  9. 红黑树B树B+树对比分析

    红黑树 二叉查找树 学习红黑树之前先理解一下二叉查找树(BST),二叉查找树的特性: ​ 1.左子树上所有结点的值均小于或等于它的根结点的值. ​ 2.右子树上所有结点的值均大于或等于它的根结点的值. ...

最新文章

  1. 【Qt】QImage加载bmp位图数据
  2. 在Centos 7下编译openwrt+njit-client
  3. java 装配_java – 无法自动装配方法
  4. 为什么硬盘速度忽快忽慢_C盘装软件会拖慢电脑速度?C盘是不是比其他盘快?...
  5. Java 多线程编程之 interruptException
  6. 删除有序vector中的重复值c++
  7. 计算机专业论文关于天气预报的,关于天气预报论文范文写作 天气预报相关论文写作资料...
  8. 设置PL/SQL工具SQL窗口的字体大小及颜色
  9. (39)Verilog HDL参数:localparam
  10. PDF解密怎么弄?分享这3个解密软件
  11. nginx 配置静态网页
  12. C++类内初始值的初始化形式
  13. 子网掩码和prefixlength
  14. 湖北审协计算机领域,国家知识产权局专利局专利审查协作湖北中心
  15. Zemax操作30--目镜基础知识和凯涅尔目镜仿真
  16. Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)
  17. 策测解金:黄金突破箱体,别错过回调就是多
  18. CANoe和CANalyzer各种版本之间的区别
  19. 用python计算数学集合A-B
  20. 无线串口服务器 moxa 稳定,moxa串口服务器通讯设置参数

热门文章

  1. css php html介绍,对CSS知识的简单介绍
  2. 什么是负边沿触发_晶闸管的导通条件是什么 晶闸管(可控硅)检测方法
  3. 零基础实战迁移学习VGG16解决图像分类问题
  4. 全卷积神经网路【U-net项目实战】语义分割之U-Net详解
  5. java-println连接
  6. “三电一兽”竞争格局将打破,网络营销外包下搜电开启高效运营
  7. 企业网络推广之中如何对网页设计提出新的色彩搭配原理?
  8. 网站优化该做好哪些细节才能更有力的吸引蜘蛛?
  9. 浅析影响网站空间选择的三大因素
  10. 使用服务器测量网站性能,使用服务器时序测量网站性能