红黑树的性质(牢记)
1、每个结点的颜色只能是红色或黑色。
2、根结点必须是黑色的。
3、每个叶子结点都带有两个空的黑色结点(被称为黑哨兵null),如果一个结点n的只有一个左孩子,那么n的右孩子是一个黑哨兵;如果结点n只有一个右孩子,那么n的左孩子是一个黑哨兵。
4、如果一个结点是红的,则它的两个儿子都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。
5、从任何一个结点到其子孙叶...
分类:
其他好文 时间:
2016-05-27 11:42:19
阅读次数:
268
红黑树(Red Black Tree) 是一种自平衡二叉查找树。红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。红黑树可以在O(log n)时间内完成查找,插入和删除操作。
二叉搜索树可以看
二叉搜索树
AVL树可以看
AVL树的插入与删除
1. 红黑树的性质
红黑树的自平衡依赖于它的以下性质:
性质1. 结点是红...
分类:
其他好文 时间:
2016-05-27 11:27:05
阅读次数:
187
第一次系统的学习数据结构是在半年前,看小甲鱼的数据结构与算法视频,自学的话有许多不懂得地方,什么AVL树,红黑树,图的最短路径,最小生成树...但总归对数据结构与算法有一个大体的印象,到现在随着不断写代码,做OJ题,愈发认识到数据结构与算法的重要性,打算再看一遍,现在看着:大话数据结构(程杰著),数 ...
分类:
其他好文 时间:
2016-05-26 07:34:07
阅读次数:
274
红黑树介绍
红黑树是一种简单的实现2-3树的数据结构,它方便的把我们之前实现的二叉搜索树改造成了一棵2-3树。它的核心思想是用一条左倾链(红链)作为“胶水”把二叉树的两个节点给粘起来,形成一个3节点。
把红链看成水平的,看是不是和2-3树就一样了BST改造成红黑树有一些约定:
- 每个节点最多只有一个红链与之相连(连父亲和孩子)
- 每条从root到null的路径,都是同样的黑链数(绝对黑平...
分类:
编程语言 时间:
2016-05-26 01:09:50
阅读次数:
261
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但 TreeSet 底层是通 ...
分类:
编程语言 时间:
2016-05-22 15:16:14
阅读次数:
181
红黑树是二叉排序树的改进, 红黑树有几个特点: 1:节点只有2中颜色,红色和黑色。 2:根节点一定是黑色节点。 3:红色节点的子节点一定是黑色节点。 4:黑色高度(根节点到每个叶子节点的路径长度包含相同的黑色节点)相等。 规定的插入的节点一定是红色节点, 红黑树的插入节点后需要调整的规则,插入节点需 ...
分类:
其他好文 时间:
2016-05-21 22:58:47
阅读次数:
223
原文: 完整简单的红黑树算法 最近组内定个规矩,每周分享一个算法,上周是第一周,分享的是红黑树,下面是自己学习总结的,感觉网上的都不是特别清楚,要么是写的特别复杂,没有一点条理。 一、红黑树性质 1.每个结点要么是红的要么是黑的 2.根结点是黑的 3.每个叶结点(叶结点即指树尾端NIL指针或NULL ...
分类:
编程语言 时间:
2016-05-18 21:58:25
阅读次数:
162
从第4节的分析中可以看出,二叉搜索树是个很好的数据结构,可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项。但是二叉搜索树有个很麻烦的问题,如果树中插入的是随机数据,则执行效果很好,但如果插入的是有序或者逆序的数据,那么二叉搜索树的执行速度就变得很慢。因为当插入数值有序时,二叉树就是非平衡的了,排在一条线上,其实就变成了一个链表……它的快速查找、插入和删除指定数据项的能力就丧失了...
分类:
编程语言 时间:
2016-05-18 19:52:43
阅读次数:
397
最近组内定个规矩,每周分享一个算法,上周是第一周,分享的是红黑树,下面是自己学习总结的,感觉网上的都不是特别清楚,要么是写的特别复杂,没有一点条理。 一、红黑树性质 1.每个结点要么是红的要么是黑的 2.根结点是黑的 3.每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的 4.如果一个结 ...
分类:
编程语言 时间:
2016-05-18 12:16:44
阅读次数:
166
http://www.cnblogs.com/CarpenterLee/p/5503882.html 本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。 总体介绍 Java TreeMap实现了S ...
分类:
其他好文 时间:
2016-05-18 09:11:35
阅读次数:
157