![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
红黑树
倔强的耗子
知道的越多,不知道的越多
展开
-
java1.8 hashMap红黑树源码解析左旋右旋,balanceInsertion,rotateLeft,rotateRight方法的实现原理
学完了红黑树的性质,再来看hashMap源码就舒服多了,红黑树插入后自平衡的情景有很多种,在上一篇红黑色的博客中都有提到,还有就是左旋右旋的实现,这里就不再多说了,直接来撸源码。/** * 插入平衡(分多钟情况,左旋,右旋) * @param root 当前根节点 * @param x 当前要插入的节点 * @return 返回根节点(平衡涉及左旋右旋会将根节点改变,所以需要返回最新的根节点) */static <K,V> TreeNode<K,V> balan.原创 2020-07-23 16:27:43 · 416 阅读 · 0 评论 -
数据结构学习之java手写红黑树(左旋、右旋、插入后平衡)
import com.sun.org.apache.regexp.internal.RE;import java.util.Comparator;/** * @Author PiHao * @Date 2020-07-19 18:34 * * 1、创建RbTree,定义颜色 * 2、创建内部类RbNode * 3、辅助方法定义:parentOf(RbNode)、isRed(RbNode)、isBlack(RbNode) setRed(RbNode)、setBlack(RbNode)、in原创 2020-07-19 22:48:53 · 423 阅读 · 0 评论 -
数据结构学习之树与红黑树(java1.8 hashMap底层实现)
数据结构学习之树与红黑树写在前头,最近在看java1.8的HashMap源码,被里面的红黑树折磨的死去活来的,又是插入,又是平衡,左旋右旋的,真的头大。特意静下心来学习红黑树的特性!!!概念树(tree)是一种抽象的数据类型,用来模拟具有树状结构性质的数据集合,它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它根朝上,而叶朝下的。树有很多种,向上的一个节点有多于两个子节点的树叫做多路数,而每个节点最多只有两个子节点原创 2020-07-19 18:19:46 · 442 阅读 · 0 评论