花开--HashMap系列之红黑树篇(二)

昨天小宋把HashMap的基本理论和1.7底层做了着重的分析讲解,今天小宋接着上篇文章最后提到过的红黑树继续往下讲。

红黑树

二叉查找树简介

说到红黑树我们就要先讲解一下二叉查找树,方便不了解二叉树的同学了解一下,知道的同学也可以复习一下这部分的知识点。

二叉查找树:二分查找算法映射出来的结构

引入图片如下:

在这里插入图片描述
这里说一下二叉查找树的特点:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉查找树;

左旋和右旋(平衡二叉查找树)

在每一次树插入新元素后,树的平衡都可能被破坏,需要旋转调整树的高度,以达到平衡树结构,共分为以下四种情况:
1.LL:对该结点的左儿子的左子树进行了一次插入,需右旋转
2.LR:对该结点的左儿子的右子树进行了一次插入,先左后右
3.RL:对该结点的右儿子的左子树进行了一次插入,先右后左
4.RR:对该结点的右儿子的右子树进行了一次插入,需左旋转

引入图片如下:

在这里插入图片描述
在这里插入图片描述

红黑树简介

刚刚看完二叉查找树的同学们应该对这种二叉树有了一定的理解,接着我们继续往下讲解红黑树。

引入图如下:

在这里插入图片描述
红黑树的性质:
1.节点是红色或黑色。
2.根节点是黑色。
3.每个叶子节点都是黑色的空节点(NIL节点)。
4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点,如果出现了连续两个红色节点就进行相应的旋转变色)
5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。(这一点是平衡的关键)

这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。
结果是这个树大致上是平衡的。因为操作比如插入、删除和查找某个值的最坏情况时间都要求与
树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的
二叉查找树。

讲到这里相信同学们也对二叉查找树,红黑树都有了一定的理解,下一章节我会带大家深刻了解HashMap1.8底层是如何进行树化,如果有同学想了解hashMap数组+链表结构和1.7的相关知识,可以看我上一篇的博客,谢谢大家的观看,希望能给各位同学带来帮助。如果觉得博主写的还可以的,可以点赞关注。😉

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值