红黑树本身就是一颗二叉查找树, 因此红黑树的插入操作和二叉查找树的插入操作都是一样的,这个不难.但是红黑树插入节点完成后, 可能会破坏红黑树的特性, 为了保持红黑树的性质, 需要通过一系列操作来保持红黑树的性质. 既然说会破坏红黑树的性质, 那红黑树到底有什么性质呢? 红黑树有五个性质: 刚才说节点 ...
分类:
其他好文 时间:
2016-12-23 13:35:58
阅读次数:
140
红黑树的五个性质: 1)每个结点要么是红的,要么是黑的。 2)根结点是黑的。 3)每个叶结点,即空结点(NIL)是黑的。 4)如果一个结点是红的,那么它的俩个儿子都是黑的。 5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。 红黑树插入的几种情况: 1、树是空的,直接将节点设置为 ...
分类:
其他好文 时间:
2016-12-11 12:24:15
阅读次数:
240
红黑树是自平衡的排序树,自平衡的优点是减少遍历的节点,所以效率会高。如果是非平衡的二叉树,当顺序或逆序插入的时候,查找动作很可能会遍历n个节点 红黑树的规则很容易理解,但是维护这个规则难。 一、规则 1.每个节点要么是红色、要么是黑色 2.根节点一定是黑色 3.红色节点不可以连续出现(父节点、子节点 ...
分类:
其他好文 时间:
2016-11-01 21:17:10
阅读次数:
231
红黑树插入和删除结点的全程演示作者:July、saturnman。时间:二零一一年三月二十八日。声明:版权所有,侵权必究。-----------------------------------引言: ...
分类:
其他好文 时间:
2016-09-08 14:47:33
阅读次数:
270
一、性质分析
1.1 性质定义
红黑树是一种二叉查找树,但在每个节点上增加一个存储位表示节点的颜色[RED或BLACK]。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,确保没有一条路...
分类:
编程语言 时间:
2016-09-06 17:02:13
阅读次数:
339
二叉排序树
一棵自平衡的二叉排序树(二叉搜索树)
生成二叉排序树的过程是非常容易失衡的,最坏的情况就是一边倒(只有右/左子树),这样会导致二叉树的检索效率大大降低(O(n))。
为了维持二叉树的平衡,有各种的算法,如:AVL,SBT,伸展树,TREAP ,红黑树等等。
红黑树红黑树需要满足5条性质:
- 节点非红即黑
- 根节点是黑色
- 所有NULL结点称为叶子节点,且...
分类:
其他好文 时间:
2016-04-01 18:08:22
阅读次数:
164
通过具体分析每一步的操作来理解插入过程,将每一步操作之后的树结构打印出来可以帮助我们理解,在图中"#"表示黑色,"~"表示红色,空结点(NULL)都为黑色,但是没有被打印出来,看图像的时候注意一下就可以了。下面将整个过程贴出来,所有的步骤都是通过程序实现的。Inserting 61 --------...
分类:
其他好文 时间:
2016-01-17 13:28:35
阅读次数:
185
关于红黑树的插入:红黑树并没有我们想象的那么难(上)关于红黑树的删除:红黑树插入删除关于红黑树的源码剖析:红黑树C源码实现与剖析
分类:
其他好文 时间:
2015-08-16 22:59:14
阅读次数:
148
事实总是因为人的欲望产生的,想要才会有,而当大多数人想的一样的时候就只会变成后人所得到生活往复引:红黑树,应运而生啊(叹气),反正我是这么认为的比原来的它略显成熟,但又涉世不深,却又显其独到的风采述:需求,是红黑树的生来原因,哪方面呢,姑且我认为是效率规则引来查询二叉树,简简单单,不复杂,说一就是一...
分类:
其他好文 时间:
2015-08-10 21:51:30
阅读次数:
152