IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【note】红黑树的插入与删除 -> 正文阅读

[数据结构与算法]【note】红黑树的插入与删除

参考:算法导论

插入

在这里插入图片描述
利用二叉搜索树的性质,二分到合适的位置,插入一个红色的叶节点(设为 z)。

插入修正(双红修正)

如果 z.p 也是红色,那么将违反第 4 条性质(红节点的子节点是黑节点),需要进行修正,过程如下:

在这里插入图片描述

Case 1:叔节点(y)为红色

在这里插入图片描述
更改 z.pz.p.py 的颜色

将问题上传至 z.p.p

Case 2:叔节点(y)为黑色,zz.pz.p.p 不共线

在这里插入图片描述
旋转 z

归约到 Case 3

Case 3:叔节点(y)为黑色,zz.pz.p.p 共线

在这里插入图片描述
更改 z.pz.p.p 的颜色,旋转 z.p

删除

在这里插入图片描述

在这里插入图片描述

第 13 行是多余的

z 的左右子节点均非空,则交换它和它的后继(但不交换颜色),然后归约为删除它的后继。

z 有一个空子节点,则用另一个子节点对应子树替换它。

如果 z 是黑色,那么将违反第 5 条性质(叶节点黑高相等),需要进行修正,过程如下(设 x 对应子树黑高少了 1):


x 为根,问题已消除。

x 为红色,将 x 修改为黑色即可。

否则:

Case 1:兄弟节点(w)为红色

在这里插入图片描述
更改 wx.p 的颜色,旋转 w

归约为 Case 2-4

Case 2:兄弟节点(w)为黑色,兄弟节点子节点(w.lw.r)均为黑色

在这里插入图片描述
更改 w 的颜色

将问题上传至 x.p

Case 3:兄弟节点(w)为黑色,兄弟节点子节点左(w.l)红右(w.r)黑


更改 ww.l 的颜色,旋转 w.l

归约为 Case 4

Case 4:兄弟节点(w)为黑色,兄弟节点右子节点(w.r)为红色

在这里插入图片描述
更改 w.r 的颜色

交换 x.pw 的颜色,旋转 w

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:27:37  更:2022-04-06 23:28:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:40:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码