带着面试题学习红黑树操作原理,解析什么时候染色

admin LV9
2020-08-22 · 4998 阅读
QQ图片20200822152829.png


沉淀、分享、成长,让自己和他人都能有所收获!


一、前言


红黑树,是一种高效的自平衡二叉查找树
Rudolf Bayer 于1978年发明红黑树,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树
红黑树具有良好的效率,它可在近似O(logN) 时间复杂度下完成插入、删除、查找等操作,因此红黑树在业界也被广泛应用,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map 均是基于红黑树结构实现的。

死记硬背,很难学会

红黑树的结构和设计都非常优秀,也同样在实现上有着复杂的处理逻辑,包括插入或者删除节点时;颜色变化、旋转操作等操作。但如果只把这些知识点硬背下来,什么时候染色、什么时候旋转,是没有多大意义的,用不了多久也就忘记了。所以这部分的学习,了解其根本更重要。

二、面试题

谢飞机,考你几个红黑树的知识点

  • 红黑树的数据结构都用在哪些场景,有什么好处?
  • 红黑树的时间复杂度是多少?
  • 红黑树中插入新的节点时怎么保持平衡?


飞机,2-3树是不没看,回去等消息吧!

三、2-3树与红黑树的等价性

在上一章节《讲解2-3平衡树「红黑树的前身」》,使用了大量图例讲解了2-3树,并在标题处写出它是红黑树的前身。阅读后更容易理解红黑树相关知识。
红黑树规则
  1. <font face="simsun">1. 根节点是黑色
  2. 2. 节点是红黑或者黑色
  3. 3. 所有子叶节点都是黑色(叶子是NIL节点,默认没有画出来)
  4. 4. 每个红色节点必须有两个黑色子节点(也同样说明一条链路上不能有链路的红色节点)
  5. 5. 黑高,从任一节点到齐每个叶子节点,经过的路径都包含相同数目的黑色节点</font>
复制代码

版块:
java
关注下面的标签,发现更多相似文章
1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 盗版,破解有损他人权益和违法作为,请各位站长支持正版!
回复

使用道具 举报

 

回答|共 8 个

admin LV9

发表于 2020-8-22 16:54:19 | 显示全部楼层

明日移动端推荐。顺便要个掘金官方微信公众号授权可以吗?
回复

使用道具 举报

admin LV9

发表于 2020-8-22 16:54:48 | 显示全部楼层

admin 发表于 2020-8-22 16:54
明日移动端推荐。顺便要个掘金官方微信公众号授权可以吗?

我感觉这次双十一不是因为QPS太大,而是阿里做了熔断,把一些不太重要的服务(收货地址修改,淘宝资讯...)给关掉了,资源都让给重要的服务,比如购物车支付订单这些。
回复

使用道具 举报

test LV6

发表于 2020-11-11 11:18:36 来自手机 | 显示全部楼层

1bbggagagbhhhjakjjjajjajjjhh
回复

使用道具 举报

test LV6

发表于 2020-11-20 13:49:43 来自手机 | 显示全部楼层

哈哈666666
回复

使用道具 举报

test LV6

发表于 2020-11-27 11:09:43 来自手机 | 显示全部楼层

66666666666
回复

使用道具 举报

test LV6

发表于 2021-8-2 10:16:24 | 显示全部楼层


厉害了。
哈哈哈哈哈
回复

使用道具 举报

test LV6

发表于 2021-10-21 17:26:48 来自手机 | 显示全部楼层

明明萝莉控哦哦
Screenshot_20211020_214241_com.lemon.lv.jpg
moushi_file1634716463941.jpg
moushi_file1634715533383.jpg
回复

使用道具 举报

test LV6

发表于 2024-2-20 14:48:05 | 显示全部楼层

66666666666
哈哈哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则