注: 看这个之前,先看看二叉搜索树吧.
红黑树简介:红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。
红黑树规则:
1. 每一个节点不是红色就是黑色的.
2. 根总是黑色的.
3. 如果节点是红色的, 则它的子节点必须是黑色的(反之不一定为真).
4. 从根到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即黑色节点长度相等).
目前只实现了插入算法, 删除算法用状态码的方式屏蔽.
正在努力实现删除算法..
废话少说,上代码,注释里面都有的.
使用这里提供的测试类需要引入JUnit.
节点类:Node.java
树的类: RedBlackTree.java
测试类: RedBlackTreeTest.java
分享到:
相关推荐
红黑树C语言代码: #include "redblack.h" #include #include "fatal.h" 头文件: #include #include "fatal.h" typedef int ElementType; #define NegInfinity (-10000) #ifndef _RedBlack_H #define _Red...
GNU的自平衡叉查找树的源代码库,包括AVL teee和红黑树 redblack tree、二叉查找树。还有PDF的原理说明及HTML的源代码函数解释。
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
红黑树(Red Black Tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉树的...
红黑树(Red-Black Tree)是二叉搜索树(Binary Search Tree)的一种改进。我们知道二叉搜索树在最坏的情况下可能会变成一个链表(当所有节点按从小到大的顺序依次插入后)。而红黑树在每一次插入或删除节点 之后...
C#,红黑树(Red-Black Tree)的构造,插入、删除及修复、查找的算法与源代码 1 红黑树(Red-Black Tree) 如果二叉搜索树满足以下红黑属性,则它是红黑树: 每个节点不是红色就是黑色。 根是黑色的。 每片叶子(无...
红黑树的发明者关于红黑树的演化过程的介绍,是最好的理解红黑树的资料。
作者给出了一种新的二叉查找树———红黑树的定义和建树方法,并给出了它在最坏情况下的查找效率估计。
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
这一版代码个人认为99.99%正确,本人使用些结构及算法用于实现嵌入式迅雷Server的任务管理。此代码经本人学习研究之后从C语言版BT源代码中的宏定义式代码中分离出来,并做成一个测试版。你也可以做一些微小的...
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)...
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组
完整实现二叉搜索树,红黑树,AVL平衡树,B树的搜索插入删除基本功能和其它功能。红黑树和B树参考自算法导论。
关于红黑树(Red-Black Tree)英文论文,全英文写作,分析全面,到位,结合当前新技术进展总结而成。
AVL树-红黑树-B树.ppt
红黑树算法,随机产生数字,动态生成红黑树,可用于演示。
红黑树和二叉搜索树的C语言实现及性能比较,大学算法导论实验
运用C++进行红黑树的描述,对红黑树的插入、删除、查找等操作进行了实现等等。
红黑树。用法默认树期望键为int类型。 import ( "fmt" rbt "github.com/erriapo/redblacktree")func main () { t := rbt . NewTree () t . Put ( 7 , "payload7" ) t . Put ( 3 , "payload3" ) t . Put ( 1 , ...
实现红黑树、二叉搜索树相关算法:插入(红黑树涉及树的调整:左旋、右旋等),删除,搜索(指定Key值节点)。 另外,红黑树实现计算树黑高的算法。