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

上一篇 <<<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、每个红色节点的两个子节点都必须是黑色
自我修复方式:【变色、左旋、右旋】




相关文章链接:
<<<Java集合类图总览
<<<ArrayList的添加和删除操作实现原理图解
<<<ArrayList的动态扩容、ModCount及fail-fast原理
<<<LinkedList增删改查操作底层实现原理
<<<数组拷贝的几种方式及和链表结构的对比
<<<Jdk1.7HashMap源码分析
<<<Jdk1.7HashMap如何扩容及解决死循环问题
<<<JDK1.8HashMap源码分析
<<<ConcurrentHashMap在JDK1.8版本比1.7改进了什么
<<<基于LinkedHashMap手写LRU淘汰策略
<<<HashSet集合底层实现原理
<<<HashTable底层实现原理及和ConcurrentHashMap区别
<<<java集合常见面试题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容