太极定二仪,清浊始以形:红黑树的实现和性质

这篇博客详细介绍了红黑树的性质、优势以及它与AVL树的区别。红黑树是一种近似平衡的二叉查找树,适用于频繁插入、删除操作。文章通过顺口溜帮助读者理解查找、插入和删除操作,并提供了大厂面试题来巩固知识点。红黑树在Java的HashMap、TreeMap、TreeSet等数据结构中有着广泛应用。
摘要由CSDN通过智能技术生成

我们在前面的章节中讲述了平衡二叉查找树,也就是叶节点高度差的绝对值不超过 1,并且左右两个子树都是一颗平衡树。最早被发明的是平衡二叉查找树是 AVL 树,后面红黑树才被发明。

AVL 树在每次的插入和删除时都要进行调整,会比较耗时。所以 AVL 树就不适合应用于频繁插入、删除的数据集。至于红黑树,在这方面相较于 AVL 树会有一些优势,其在插入、删除、查找等各种操作的性能都比较稳定。对于工程应用,需要面对各种异常情况,为了支撑工业级的应用,我们会更加倾向于使用性能更为稳定的红黑树。

红黑树之所以会被叫做这个名称,是因为其在每个结点上增加了一个存储位表示结点的颜色,可以是 RED 或者 BLACK。通过对任何一条从根到叶子的路径上各个着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。所以,红黑树能保证在最坏情况下,基本操作的运行时间为 O(logN)。在实际场景中,Java 的 HashMap、TreeMap、TreeSet 等均使用了红黑树进行数据的存储的。

红黑树在实际工程中应用如此广泛,那么为什么红黑树会有这样的优势呢,接下来由我给大家一一道来。

1. 红黑树的性质

红黑树也叫做 R-B Tree(Red-Black Tree),是一种不怎么严格的平衡二叉查找树。为了防止有些同学对平衡二叉查找树的定义有些遗忘,我们再回顾一下平衡二叉查找树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值