首页 > 其他分享 >红黑树

红黑树

时间:2023-04-23 19:47:25浏览次数:37  
标签:黑色 每个 二叉 查找 红黑树 节点

参考:

https://juejin.cn/post/6844903519632228365

https://zhuanlan.zhihu.com/p/143585797

引入

先了解二叉查找树

  • 如果左子树不为空,则左子树上所有节点的值均小于根节点的值
  • 如果右子树不为空,则右子树上所有节点的值均大于根节点值
  • 左右子树也都是二叉查找树

 二分查找的思想,查找所需的最大次数等于二叉查找树的高度

但是有单分支可能过长的缺陷,也就是不平衡了,查找变成线性的了

 而红黑树是一种自平衡的二叉树

 

红黑树

自平衡二叉树

除了符合二叉查找树的基本特性外

1.节点是红色或黑色。

2.根节点是黑色。

3.每个叶子节点都是黑色的空节点(NIL节点)。  (每个父节点一定有两个叶子节点,没有的就用NIL填充)

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

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

 规则 3与5联合起来,红黑树就不会出现单链或者单链过长的情况

 

调整

破坏规则的情况,可以通过“变色”和“旋转”来进行调整

待续。。。

 

标签:黑色,每个,二叉,查找,红黑树,节点
From: https://www.cnblogs.com/deity-night/p/17347506.html

相关文章

  • 数据结构 玩转数据结构 13-3 红黑树与2-3树的等价性
    0课程地址https://coding.imooc.com/lesson/207.html#mid=15082 1重点关注1.12-3树的绝对平衡性演示推导  1.22-3树的绝对平衡性归纳a插入2节点,直接融合b插入3节点,融合后向上分裂c循环 3节点分裂后依次判断父节点是......
  • 数据结构 玩转数据结构 13-1 红黑树与2-3树
    0课程地址https://coding.imooc.com/lesson/207.html#mid=15086 1重点关注1.1红黑树的特性  1.22-3树的特性满足二叉树性质2-3树是一棵绝对平衡的树  2课程内容2.12-3树定义每个节点有两个或三个子节点的二......
  • 红黑树的性质
    一棵红黑树是满足如下红黑性质的二叉搜索树:每个结点是红色的或者黑色的。根结点是黑色的。每个叶结点(NIL)是黑色的。如果一个结点是红色的,那么它的两个子结点都是黑色的。对于每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点。......
  • 红黑树
    一、红黑树简介自平衡二叉查找树O(logN)时间内完成查找、增加、删除等操作二、为什么需要红黑树二叉平衡树插入数据为随机的时,那么它就是接近平衡的二叉树,平衡的二叉树操作效率较高O(logN)。如果插入有序,则节点集中于树的一侧,变成链表,操作效率降低,时间复杂度变为O(N),二叉树的......
  • 红黑树及JAVA实现
     红黑树在Java中的应用红黑树在Java中有很多应用。例如,Java8中的HashMap容器和TreeMap容器都有红黑树的具体应用。HashMap在插入和查找时都需要对键进行哈希,而TreeMap则是按照键的自然顺序进行排序。因此,当需要对键进行排序时,可以使用TreeMap;当不需要排序时,可以使用HashMap......
  • 2023-03-26 红黑树
    红黑树1红黑树与2-3树红黑树举例《算法导论》中堆红黑树的定义首先红黑树一定是一棵二分搜索树BST1.每个节点或者是红色的,或者是黑色的2.根节点是黑色的3.每一......
  • 理论:第一章:HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)
    首先HashMap是Map的一个实现类,而Map存储形式是键值对(key,value)的。可以看成是一个一个的Entry。Entry所存放的位置是由key来决定的。Map中的key是无序的且不可重复的,所......
  • Linux内核红黑树1—Documentation/rbtree.txt翻译
    转自:https://www.cnblogs.com/hellokitty2/p/15362630.html1.什么是红黑树,它们有什么用?------------------------------------------------红黑树是一种自平衡二叉搜索树......
  • Linux内核红黑树2—移植笔记
    转自:https://www.cnblogs.com/hellokitty2/p/15362596.html一、学习笔记1.rbtree简介rbtree,全称是Red-BlackTree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树......
  • 红黑树——一种自平衡的二叉树
    红黑树——一种自平衡的二叉树一、红黑树简介普通二叉树在数据不够均匀的情况下,可能导致左右子树高度会相差比较大,最坏情况下树的结构相当于一个链表,时间复杂度为n。为了......