红黑树的插入

原创 2015年07月11日 01:50:46

红黑树,是使用得非常多的一种自平衡二叉树,这里讲解一下红黑树的插入(关于红黑树的概念以及旋转这里不进行说明)

首先,我们设当前插入节点为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的颜色。


旋转及重新着色之后结果如下:


版权声明:本文为博主原创文章,未经博主允许不得转载。

红黑树 插入与删除 总结

插入点为x, 父结点为p, 伯父节点为w,爷爷节点为g. 插入操作: 以插入点作为基准,则只有父亲结点为红色才导致红黑树失去平衡。重新调整平衡大致有两种情况: 1. 伯父结点为红色 2. 伯父结点为黑...
  • spch2008
  • spch2008
  • 2013年11月29日 10:23
  • 1184

【算法导论】红黑树详解之一(插入)

红黑树是建立在二叉查找树的基础之上的,关于二叉查找树可以参看【算法导论】二叉搜索树的插入和删除和【算法导论】二叉树的前中后序非递归遍历实现。对于高度为h的二叉查找树而言,它的SEARCH、INSERT...
  • cyp331203
  • cyp331203
  • 2015年01月14日 11:11
  • 3598

红黑树的添加删除操作

来自: http://hi.baidu.com/coolinc/blog/item/3aa07f3e162502eb54e723b1.html介绍另一种平衡二叉树:红黑树(Red Black Tree...
  • Very_2
  • Very_2
  • 2010年07月09日 10:57
  • 17856

红黑树元素的插入和删除

1.红黑树        平衡搜索二叉树的查询性能很好。(注意:平衡和搜索是两个修饰词。平衡是左右子树高度差不差过1,搜索是对于任一节点来说,左子树所有节点值        重要的性质:       ...
  • yutianxin123
  • yutianxin123
  • 2016年08月16日 21:43
  • 830

红黑树插入操作分析及代码实现

首先说一下红黑树的五个性质: 1、每个结点要么是红色的,要么是黑色的; 2、根结点是黑色的; 3、每个叶结点,即空结点(NIL)是黑色的; 4、如果一个结点是红色的,那么它的两个子结点都是黑色...
  • tayanxunhua
  • tayanxunhua
  • 2014年03月19日 09:56
  • 1062

数据结构之红黑树(二)——插入操作

插入或删除操作,都有可能改变红黑树的平衡性,利用颜色变化与旋转这两大法宝就可应对所有情况,将不平衡的红黑树变为平衡的红黑树。 在进行颜色变化或旋转的时候,往往要涉及祖孙三代节点:X表示操作的基准节点,...
  • u012152619
  • u012152619
  • 2015年07月30日 09:20
  • 1596

红黑树插入-自己总结篇

红黑树插入总是令部分同学困惑,今天我将整个过程整理一下,也希望能帮助到大家。...
  • jdbc
  • jdbc
  • 2015年01月18日 23:09
  • 1171

红黑树-JAVA实现(红黑树插入和删除)

红黑树介绍 红黑树是平衡二叉查找树的一种。平衡树在插入和删除的时候,会通过旋转操作将高度保持在logN。其中两款具有代表性的平衡树分别为AVL树和红黑树。AVL树由于实现比较复杂,而且插入和删除性能差...
  • Tcorpion
  • Tcorpion
  • 2017年02月10日 12:41
  • 1688

学习之旅-红黑树之插入新节点

关于红黑树的帖子不可谓不多。一开始我看的是july的帖子(链接:http://blog.csdn.net/v_JULY_v/article/details/6105630),但是删除的时候他这系列说的...
  • DreamCLR
  • DreamCLR
  • 2016年03月23日 15:48
  • 710

红黑树插入删除操作

R-B Tree简介     R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(...
  • justdoithai
  • justdoithai
  • 2016年09月26日 15:42
  • 414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:红黑树的插入
举报原因:
原因补充:

(最多只允许输入30个字)