博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『算法设计_伪代码』红黑树
阅读量:4694 次
发布时间:2019-06-09

本文共 1827 字,大约阅读时间需要 6 分钟。

一、红黑树性质

二、红黑树旋转

三、插入红黑树

先插入(以红色节点形式),再调整

【后文例子转自】

插入结点:12、1、9、2、0、11、7、19、4、15、18、5、14、13、10、16、6、3、8、17 全程演示

1.插入结点12
1.插入结点12
2.插入结点1
 
2.插入结点1
3.插入结点9(左-情况2)
3.插入结点9(左-情况2)
4.插入结点2(左-情况1)
4.插入结点2(左-情况1)
5.插入结点0
5.插入结点0
6.插入结点11
6.插入结点11
7.插入结点7(右-情况1)
7.插入结点7(右-情况1)
8.插入结点19
8.插入结点19
9.插入结点4(右-情况2)
9.插入结点4(右-情况2)
10.插入结点15(右-情况1)
10.插入结点15(右-情况1)
11.插入结点18(左-情况2)
11.插入结点18(左-情况2)
12.插入结点5(右-情况1)
12.插入结点5(右-情况1)
13.插入结点14(左-情况1)
13.插入结点14(左-情况1)
14.插入结点13(左-情况3)
14.插入结点13(左-情况3)
15.插入结点10
15.插入结点10
16.插入结点16(右-情况1)
16-1.插入结点16(右-情况1)
 
16-2.插入结点16(右-情况1)
17.插入结点6(左-情况2)
17.插入结点6(左-情况2)
18.插入结点3(左-情况2)
18.插入结点3(左-情况2)
19.插入结点8(右-情况1)
19.插入结点8(右-情况1)
20.插入结点17(右-情况3)
20.插入结点17(右-情况3)

四、删除红黑树

删除结点:12、1、9、2、0、11、7、19、4、15、18、5、14、13、10、16、6、3、8、17 全程演示

1.删除结点12(右-情况4),实际上删除的是结点13所在位置,之后将结点13赋值给结点12所在位置即可
1.删除结点12(右-情况4)
2.删除结点1(左-情况4),实际上删除的是结点0所在位置,之后将结点0赋值给结点1所在位置即可
2.删除结点1(左-情况4)
3.删除结点9(左-情况2),实际上删除的是结点10所在位置,之后将结点10赋值给结点9所在位置即可
3.删除结点9(左-情况2)
4.删除结点2(左-情况2),实际上删除的是结点3所在位置,之后将结点3赋值给结点2所在位置即可
4.删除结点2(左-情况2)
5.删除结点0,删除红色结点,无影响
5.删除结点0
6.删除结点11,实际上删除的是结点13所在位置,之后将结点13赋值给结点11所在位置即可,由于结点13为红色,无影响
6.删除结点11
7.删除结点7,实际上删除的是结点8所在位置,之后将结点8赋值给结点7所在位置即可,由于结点8为红色,无影响
7.删除结点7
8.删除结点19(右-情况4)
8.删除结点19(右-情况4)
9.删除结点4(左-情况2),实际上删除的是结点5所在位置,之后将结点5赋值给结点4所在位置即可
9.删除结点4(左-情况2)
10.删除结点15(左-情况3)
10.删除结点15(左-情况3)
11.删除结点18(右-情况2)
 
11.删除结点18(右-情况2)
12.删除结点5(左-情况4),实际上删除的是结点3所在位置,之后将结点3赋值给结点5所在位置即可
 
12.删除结点5(左-情况4)
13.删除结点14(左-情况3),实际上删除的是结点13所在位置,之后将结点13赋值给结点14所在位置即可
13.删除结点14(左-情况3)
14.删除结点13(左-情况2)
14.删除结点13(左-情况2)
15.删除结点10,实际上删除的是结点16所在位置,之后将结点16赋值给结点10所在位置即可
15.删除结点10
16.删除结点16(右-情况1),实际上删除的是结点17所在位置,之后将结点17赋值给结点16所在位置即可
 
16.删除结点16(右-情况1)
17.删除结点6,实际上删除的是结点8所在位置,之后将结点8赋值给结点6所在位置即可,由于结点8为红色,无影响
17.删除结点6
18.删除结点3(左-情况2)
18.删除结点3(左-情况2)
19.删除结点8
19.删除结点8
20.删除结点17
20.删除结点17

转载于:https://www.cnblogs.com/hellcat/p/9259429.html

你可能感兴趣的文章
gulpfile 压缩模板
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
21世纪经济网APP
查看>>
解决NetworkOnMainThreadException
查看>>
1039 到底买不买
查看>>
农银电商项目学习笔记(一)
查看>>
MockObject
查看>>
Chukwa
查看>>
(转)Maven仓库——私服介绍
查看>>
设计模式之工厂模式
查看>>
仿复制粘贴功能,长按弹出tips的实现
查看>>
Kubernetes-Host网络模式应用
查看>>
第三次作业
查看>>
使用HTML5构建iOS原生APP(2)
查看>>
sqlplus terminators - Semicolumn (;), slash (/) and a blank line
查看>>
省选知识清单/计划列表(咕?)
查看>>