1、红黑树和2-3树的等价性 也想达到像2-3树那样的绝对平衡,但2-3树的实现比较麻烦,所以产生了红黑树;那么,红黑树和2-3树有怎么样的等价性呢?如下图: 说明:红黑树最开始想用红线区别b、c,但实现起来比较困难,然后用红黑来表示节点,就比较好实现了! 红黑树和2-3树总体对比图,可以参考一下: 2、红黑树...
既然红黑树只是对2-3树的模拟,那么先要懂得2-3树。 2-3树定义和插入 节点类型和树的定义 Definition.A2-3 search treeis a tree that is either empty or A2-node, with one key (and associated value) and two links, a left link to a 2-3 search tree with smaller keys, and a right link t...
一般对红黑树的讲述都是先给出这样的定义,这样想对不太容易理解的,而在算法4一书中,直接跳过这些规则,而讲述了红黑树与2-3树的等价性。如果我们先了解2-3树,理解了红黑树与2-3树之间的关系,再来看这些规则,就容易理解了 2-3树: 2-3树满足二分搜索树的基本性质,但是不是二叉树 2-3树节点可以存放一个...
这一章节是结合HashMap的延展,在Jdk1.8中HashMap是使用桶数组+链表和红黑树实现,所以顺着上一章节的核心原理和API功能讲解后,本来这一章节想直接进入到红黑树,但如果想把红黑树学明白,就需要了解他的来龙去脉,也就是它的前身2-3树。 面试题 谢飞机,考你几个简单的知识点 飞机,看你简历写了解数据结构,可以简...
红黑树的定义是含有红黑链接并满足下列条件的二分搜索树: 1.红链接均为左连接; 2.没有任何一个节点同时和两条红链接相连; 3.该树是完美黑色平衡的,即任意空链接到根节点的路径上的黑链接数量相同(和2-3树等价的,任意节点到其叶子节点的高度都是相同的)。
但红黑树是保持黑平衡的二叉树,这是由红黑树的最后一个性质得来的:从任意节点出发,到达叶子结点所经过的黑色节点个数是一样的,由于2-3树和红黑树的等价关系,其实红黑树的某些性质就是由2-3树的性质得来的,比如刚才这条红黑树的性质正是由2-3树的绝对平衡得来的。
红黑树源于Leo J. Guibas 和 Robert Sedgewick(算法4作者)于1978写的一篇论文。红黑树的结构复杂,但它的操作有着良好的最坏情况运行时间,并且在实践中高效:它可以在 O(logn) 时间内完成查找,插入和删除。 2.1 红黑树与2-3 树的等价性 红黑树本质上和 2-3 树是等价的,2-3 树中有两种节点,分别是2-节点...
第一次接触红黑树是在关于hashMap,上来就扔五个特性,说满足这五个特点的二分搜索树就是红黑树。 ( 1)每个节点或者是黑色,或者是红色。 ( 2)根节点是黑色。 ( 3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!] ( ...
红黑树是一颗2-3树,他不需要分别定义2-,3-,而是在普通树的基础上,加上颜色,红树那么这个节点和上层节点表示3-,黑的表示普通树。 红黑树具有以下性质: 红链接都为左链接; 完美黑色平衡,即任意空链接到根节点的路径上的黑链接数量相同。 画红黑树时可以将红链接画平。
2-3 树的叶节点不含有子节点,有一个或两个数据元素。 树 是一个 2-3 树,当且仅当以下表述之一成立: 是空树。 是一个 2 节点,并带有元素 。如果 有左孩子 和右孩子 ,则: 和 是相同高度的 2-3 树。 大于 中的每个元素。 小于 中的每个数据元素。