算法导论读书笔记(15) -
红黑树的具体实现目录红黑树的简单Java实现红黑树的简单Java实现/** * 红黑树 * * 部分代码参考自TreeMap源码 */public class
RedBlackTree { protected TreeNode root = null; pr...
分类:
其他好文 时间:
2014-06-07 05:08:01
阅读次数:
331
B树(B-Tree)1970年由R. Bayer和E.
Mccreight提出的一种适用于外查找的树,一种由BST推广到多叉查找的平衡查找树,由于磁盘的操作速度远小于存储器的读写速度,所以要求在尽量少
的操作次数内完成CPU分配的任务,B树就按照此原则设计,B树与红黑树的主要区别在于B树节点可以有超...
分类:
其他好文 时间:
2014-05-30 09:26:21
阅读次数:
377
红黑树(Red-Black
Tree)红黑树是一种BST,但是每个节点上增加一个存储位表示该节点的颜色(R或者B);通过对任何一条从root到leaf的路径上节点着色方式的显示,红黑树确保所有路径的差值不会超过一倍,最终使得BST接近平衡;红黑树内每个节点包含五个属性:color,
key, lef...
分类:
数据库 时间:
2014-05-29 16:51:27
阅读次数:
400
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点:
1、红黑树的基本概念。 2、红黑树...
分类:
编程语言 时间:
2014-05-26 13:37:14
阅读次数:
232
红黑树的定义
红黑树是满足如下条件的二叉树:(1)每个结点都有颜色标记,要么是黑色,要么是红色(2)根结点是黑色的(3)叶子结点是黑色的(按《算法导论》和其他文献的说法是,这里的叶子结点指的是空结点)(4)红色结点的孩子必须是黑色的(5)从根结点到每一个叶子结点的路径上,黑色结点的个数相同。(...
分类:
其他好文 时间:
2014-05-26 12:14:29
阅读次数:
386
红黑树
红黑树是一种二进制查找树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或black。通过对任何一条从根到叶子的路径上各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。
树中灭个节点包含五个域,color,key,left,right 和p。如果某及诶但没有一个子节点或父节点,则该节点响应的指针域包含值NIL.我们将把这些NIL指向二叉查找...
分类:
其他好文 时间:
2014-05-25 10:27:17
阅读次数:
290
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过...
分类:
编程语言 时间:
2014-05-25 01:00:06
阅读次数:
382
1、综述set是C++STL中众多的Container(容器)之一,用于储存数据并且能从一个数据集合中取出数据,它的每个元素的值必须惟一。set内部通过自建红黑树(一种非严格意义上的平衡二叉树)实现,可以对数据自动排序。构造set集合主要目的是为了快速检索,不可直接去修改键值。2、set的常见操作首...
分类:
编程语言 时间:
2014-05-23 09:06:32
阅读次数:
338
算法导论读书笔记(13)目录红黑树旋转插入情况1 : z 的叔父结点 y 是红色的情况2 :
z 的叔父结点 y 是黑色的,而且 z 是右孩子情况3 : z 的叔父结点 y 是黑色的,而且 z 是左孩子删除情况1 : x 的兄弟 w 是红色的情况2 :
x 的兄弟 w 是黑色的,且 w 的两个孩子都...
分类:
其他好文 时间:
2014-05-21 17:22:47
阅读次数:
451