红黑树的插入
来源:互联网 发布:淘宝怎么设置卖家区域 编辑:程序博客网 时间:2024/06/06 04:30
红黑树,是使用得非常多的一种自平衡二叉树,这里讲解一下红黑树的插入(关于红黑树的概念以及旋转这里不进行说明)
首先,我们设当前插入节点为u,其父节点为pu,其祖父节点为gu,其父节点的兄弟节点(即其叔节点)为gr。
接下来分情况讨论:
一、当树为空树时,u为根节点。
二、当树不为空时,再分情况讨论:
1.当pu节点为黑时,u插入,着红色。
2.当pu节点为红时,再分情况(gr的颜色及u,pu的位置):
1)当gr为红色时:插入情况可以分为四种(如下图),插入之后只需要对树进行重新着色。
下面四中情况都只需要把gu变成红色,把pu、gr变成黑色就行了。
重新着色之后情况如下:
2)当gr为黑色时:插入情况可以分为四种(如下图),插入之后需要对树进行旋转以及重新着色。
第一种:gu节点右旋,交换pu、gu的颜色。第二种:pu节点左旋,再gu节点右旋,交换u、gu的颜色。
第三种:gu节点左旋,交换pu、gu的颜色。第四种:pu节点右旋,再gu节点左旋,交换u、gu的颜色。
旋转及重新着色之后结果如下:
0 0
- 红黑树的插入
- 红黑树的插入实现
- 红黑树的插入
- 红黑树的插入
- 红黑树的插入
- 红黑树的插入过程
- 红黑树的插入操作
- 红黑树的插入
- 红黑树的简单插入
- 红黑树的插入的实现
- 红黑树的插入与删除
- 红黑树的建立,插入,删除
- 红黑树的插入与删除
- 红黑树插入的栈实现
- 红黑树的插入和删除
- 红黑树插入算法的实现
- 红黑树的插入与删除
- 红黑树的理解说明(插入)
- 关于矩形排样问题(三)
- Java实现的3D计算机图形类库与引擎
- 《架构之美》笔记
- 无法将网络更改为桥接状态:没有未桥接的主机网络适配器
- JAVA字符串的比较
- 红黑树的插入
- 用GPicSync软件为照片添加拍摄地点的坐标信息
- Java设计模式之备忘录模式
- 【十分不错】【离线+树状数组】【TOJ4105】【Lines Counting】
- 我的大学生涯
- IOS 开发推荐常用lib
- Android 5.1 API 22 所有sdk文件下载地址
- java初级笔记_GUI
- error C1083: 无法打开源文件:No such file or directory