美文网首页RxJava编程语言爱好者Java
JDK8的HashMap中红黑树左旋右旋原理图解

JDK8的HashMap中红黑树左旋右旋原理图解

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-01-01 11:47 被阅读0次

上一篇 <<<ConcurrentHashMap在JDK1.8版本比1.7改进了什么
下一篇 >>>基于LinkedHashMap手写LRU淘汰策略


二叉树特点

1、以第一个节点作为根节点,所有小于根节点的数据放置在左边,所有大于等于根节点的数据放置在右边
2、所有左子树和右子树自身必须也是二叉搜索树
3、时间复杂度:2x=n>x=log2n=logn,查找效率:20亿个点 也就是查询231=21
缺点:
不平衡 和时间插入的顺序有关系,如果插入第一个是为0的情况下,最后成为了一条线。时间复杂度其实就是为树的深度,也就是变为O(n)
tips:数据结构连接可访问https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

红黑树与二叉搜索树的实现的区别

二叉搜索树是简单的二叉树,小于根节点的在左子树,大于根节点的在右子树,不会自动调整二叉树的层级,容易出现链表形式,导致查询效率低下。
红黑树属于平衡二叉树的子集,具有颜色,通过变色、左旋、右旋等方式调整二叉树的层级平衡,大大提高查询效率。

红黑树基本特征

1、每个节点的颜色不是红色就是黑色
2、根节点一定为黑色
3、新增节点默认颜色为红色
4、不允许两个红色节点连在一起
5、每个红色节点的两个子节点都必须是黑色
自我修复方式:【变色、左旋、右旋】



相关文章

  • 基于LinkedHashMap手写LRU淘汰策略

    上一篇 <<

  • JDK8的HashMap中红黑树左旋右旋原理图解

    上一篇 <<

  • 拿下红黑树

    红黑树 红黑树、2-3树的简单定义: 实现红黑树的基本结构以及添加操作(维护定义,左旋、右旋、颜色反转) 红黑树与...

  • 红黑树

    本文的主要内容:1、红黑树的基本概念以及最重要的5点规则。2、红黑树的左旋转、右旋转、重新着色的原理与Java实现...

  • 面试题04 HashMap实现原理

    1. HashMap实现原理 JDK7: 数组 + 链表JDK8: 数组 + 链表 + 红黑树 JDK7HashM...

  • jdk8 hashmap

    jdk8的HashMap是桶+链表+红黑树实现的,由于加入了红黑树以及其他优化,HashMap的插入查找的性能提高...

  • 红黑树

    红黑树: 根节点是黑 插入新节点是红链 左旋右旋 反转颜色,A节点左右子节点都是红链 则子节点全转为黑链,同时A变...

  • 2020-07-23

    理解红黑树很难?不存在的,史上最详细的红黑树图解 HashMap的实现原理可以说是面试中必问的一道面试题了,它可以...

  • 「Java 集合 碎片知识」HashMap

    HashMap在jdk8中,HashMap底层采用 数组+链表+红黑树 实现,是线程不安全的,可以使用null作为...

  • 二叉搜索树-红黑树数据是怎样插入的???

    红黑树 新数据插入,节点变化过程图示, 注意, 树节点进行 重新作色,,或 节点左旋 右旋,是为了保持树平衡而做出...

网友评论

    本文标题:JDK8的HashMap中红黑树左旋右旋原理图解

    本文链接:https://www.haomeiwen.com/subject/cdkknktx.html