问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

红黑树 (Red-Black Tree) – 介绍

发布网友 发布时间:2024-10-03 19:19

我来回答

1个回答

热心网友 时间:2024-10-05 20:54

介绍:

红黑树是一种自平衡二叉搜索树,每个节点包含一个额外的位,通常被解释为颜色(红色或黑色)。这种颜色用于保证树在插入和删除操作中保持平衡。尽管树的平衡并不完美,但能将搜索时间减少并保持在 O(log n) 左右,其中 n 是树中元素的总数。红黑树由 Rudolf Bayer 在 1972 年发明。

必须注意的是,由于每个节点只需要 1 位空间来存储颜色信息,这些类型的树与经典(未着色)二叉搜索树具有相同的内存占用。

每棵红黑树都遵循的规则:

为什么是红黑树?

大多数 BST 操作(包括搜索、最大值、最小值、插入、删除等)需要 O(h) 时间,其中 h 是 BST 的高度。对于倾斜的二叉树,这些操作的成本可能会变成 O(n)。如果我们确保每次插入和删除后树的高度保持 O(log n),那么我们可以保证所有这些操作的上限为 O(log n)。红黑树的高度及各操作的时间复杂度始终为 O(log n),其中 n 是树中的节点数。

与 AVL 树的比较:

与红黑树相比,AVL 树更平衡,但在插入和删除过程中可能会导致更多的旋转。因此,如果您的应用程序涉及频繁的插入和删除,那么应该首选红黑树。如果插入和删除的频率较低,而搜索是一种更频繁的操作,那么 AVL 树应该优先于红黑树。

红黑树如何确保平衡?

理解平衡的一个简单示例是,在红黑树中不可能有 3 个节点的链。我们可以尝试任何颜色的组合,看看它们是否都违反了红黑树属性。

红黑树的属性:

红黑树的黑色高度:

黑色高度是从根到叶子的路径上黑色节点的数量。叶节点也算作黑色节点。从上面的属性 3 和 4,我们可以得出,高度为 h 的红黑树的 black-height >= h/2。

从任何一个节点到其最远的后代叶子的节点数不超过到最近的后代叶子的节点数的两倍。

每个具有 n 个节点的红黑树的高度 <= 2Log2(n+1)

证明如下:

对于一般的二叉树,设k是所有根到 NULL 路径上的最小节点数,则 n >= 2k – 1(例如,如果 k 为 3,则 n 至少为 7)。这个表达式也可以写成 k <= Log2(n+1)。

从红黑树的属性 4 和上述声明,我们可以说在具有 n 个节点的红黑树中,有一条从根到叶的路径最多具有 Log2(n+1) 个黑色节点。

根据红黑树的属性 3 和 5,我们可以声称红黑树中黑色节点的数量至少为 ⌊n/2⌋,其中 n 是节点的总数。

从以上几点,我们可以得出这样一个事实:具有 n 个节点的红黑树的高度 <= 2Log2(n+1)

红黑树中的搜索操作:

由于每棵红黑树都是二叉树的特例,所以红黑树的搜索算法与二叉树的搜索算法类似。

算法:

实例: 在以下红黑树中搜索11

红黑树的应用:

相关文章:

(二) 红黑树(Red-Black Tree)- 插入操作 - 嗅探网的文章 - 知乎

(三) 红黑树(Red-Black Tree)- 删除操作 - 嗅探网的文章 - 知乎

完整示例代码下载链接:(包含各种语言:C语言、Python、Java,C++等均有示例)

见标题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保滞纳金做什么科目 表达乐观积极向上的古诗词(心境开阔的诗句) 排卵期同房怀孕几率大不大? 排卵期同房怀孕的几率大不大? 70万的房子违约金一般是多少 房产延期违约金是多少 房产合同违约金上限的法律规定 跨税云:法国VAT税号注册申请流程 欧洲vat申请流程是什么 申请vat流程是什么啊? 急求无锡哪里有可以对手机辐射做鉴定的 昆虫记的读后感小学作文 被兔子抓破皮出血会的狂犬病吗 集成墙板如何安装集成墙板如何清洁保养 免费领取QQ宠物的方法现在一共有几种 是哪些? 英国的缩写字母是什么? ...的标配,日本国宝级天后中岛美雪是如何诠释这句话的? ...女性的标配,日本国宝级天后中岛美雪是如何诠释这句话的 我的轮胎动平衡机时常不能启动时什么原因? 怎样才能成为斯诺克职业选手? 医用妇科炎症热敷用粗盐[编辑本段]第四代海盐(医用粗盐) 描写姐弟恋的主题的歌曲 男声 治疗内分泌失调、用什么药好?我是男生 235/55R19轮胎普利司通有此规格吗 雷克萨斯rx300轮胎型号是什么? 2024年二月廿五出生叶姓女孩名字怎么取 2023年九月十六出生叶姓女孩名字怎么取 2024年三月十六出生叶姓女孩名字叫什么 叶姓女孩名字2023年10月4日出生的 抖音带货发展趋势怎么样?无货源玩法靠谱吗? 组织树如何实现django(2023年最新整理) 石缝间的生命用了什么写作手法 有多少人还记得一部韩剧《青青草》? 10部值得重温的韩剧,哪一部让你还想再看一遍 线条种类有哪些 丰南教委楼怎么样 唐山市第一中学教学改革 在德阳中国绵竹年画村旅行,有哪些性价比高的酒店值得推荐? 我们家是二楼商服,开办文化辅导学校,教委要求必须有后楼梯作安全通道... 有什么去四川绵竹旅行的住宿指南分享? 去绵竹三日游,有什么好的建议与攻略? 摘苹果英语市单词怎么写 我安装的暴风影音想卸载 可卸载的程序里面找不到它 360 优化大师都没... 夏普电视连接蓝牙耳机的方法 音乐故事情迷俄罗斯预告片中的歌曲叫什么名字?工厂组合的,就短短的... ...她们有一首歌的中文译名叫《马林果》,求那个组合的信息! 崇礼旅游吃住攻略,崇礼附近旅游攻略路线 足额保险弊端 崇礼夏季住宿攻略,夏季崇礼旅游攻略 崇礼冬奥小镇旅游攻略,冬季旅游路线推荐2022