二叉查找树 红黑树 2-3-4树 定义
2014-07-26 11:03
295 查看
二叉查找树:
1. 对于树中的每一个节点,如果它有左子数,则左子树中所有节点的值不大于该节点值;如果它有右子树,则有子树中所有节点的值不小于该节点的值。
根据这个性质,可以证明二叉搜索树具有执行查找、插入、删除等操作的时间复杂度为O(lgn)的特点。
而且可以证明,一棵由n个结点,随机构造的二叉查找树的高度为lgn,所以顺理成章,一般操作的执行时间为O(lgn)。
//至于n个结点的二叉树高度为lgn的证明,可参考算法导论 第12章 二叉查找树 第12.4节。
2. 但若是一棵具有n个结点的线性链,则此些操作最坏情况运行时间为O(n)。
一般的,红黑树,满足以下性质,即只有满足以下全部性质的树,我们才称之为红黑树:
1)每个结点要么是红的,要么是黑的。
2)根结点是黑的。
3)每个叶结点(叶结点即指树尾端NIL指针或NULL结点(与平时说的叶结点不同!))是黑的。
4)如果一个结点是红的,那么它的俩个儿子都是黑的。
5)对于任一结点而言,其到叶结点树尾端NIL指针的每一条路径都包含相同数目的黑结点。
树的左旋:
左旋以pivot到y之间的链为“支轴”进行,它使y成为该孩子树新的根,而y的左孩子b则成为pivot的右孩子。
2.右旋
2-3-4树:
2-3-4 树在计算机科学中是阶为 4 的B树。根据维基百科上的介绍:大体上同B树一样,2-3-4 树是可以用做字典的一种自平衡数据结构。它可以在O(log n)时间内查找、插入和删除,这里的 n 是树中元素的数目。2-3-4 树在多数编程语言中实现起来相对困难,因为在树上的操作涉及大量的特殊情况。红黑树实现起来更简单一些,所以可以用它来替代(红黑树稍后介绍)。以下就是一棵2-3-4树:
插入操作:待插入的结点是3时,把中间结点上移,分裂
1. 对于树中的每一个节点,如果它有左子数,则左子树中所有节点的值不大于该节点值;如果它有右子树,则有子树中所有节点的值不小于该节点的值。
根据这个性质,可以证明二叉搜索树具有执行查找、插入、删除等操作的时间复杂度为O(lgn)的特点。
而且可以证明,一棵由n个结点,随机构造的二叉查找树的高度为lgn,所以顺理成章,一般操作的执行时间为O(lgn)。
//至于n个结点的二叉树高度为lgn的证明,可参考算法导论 第12章 二叉查找树 第12.4节。
2. 但若是一棵具有n个结点的线性链,则此些操作最坏情况运行时间为O(n)。
一般的,红黑树,满足以下性质,即只有满足以下全部性质的树,我们才称之为红黑树:
1)每个结点要么是红的,要么是黑的。
2)根结点是黑的。
3)每个叶结点(叶结点即指树尾端NIL指针或NULL结点(与平时说的叶结点不同!))是黑的。
4)如果一个结点是红的,那么它的俩个儿子都是黑的。
5)对于任一结点而言,其到叶结点树尾端NIL指针的每一条路径都包含相同数目的黑结点。
树的左旋:
左旋以pivot到y之间的链为“支轴”进行,它使y成为该孩子树新的根,而y的左孩子b则成为pivot的右孩子。
2.右旋
2-3-4树:
2-3-4 树在计算机科学中是阶为 4 的B树。根据维基百科上的介绍:大体上同B树一样,2-3-4 树是可以用做字典的一种自平衡数据结构。它可以在O(log n)时间内查找、插入和删除,这里的 n 是树中元素的数目。2-3-4 树在多数编程语言中实现起来相对困难,因为在树上的操作涉及大量的特殊情况。红黑树实现起来更简单一些,所以可以用它来替代(红黑树稍后介绍)。以下就是一棵2-3-4树:
插入操作:待插入的结点是3时,把中间结点上移,分裂
相关文章推荐
- C++模板实现二叉查找树(一 树的数据结构定义与节点插入)
- 红黑树 avl树 二叉查找树
- 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)
- 二叉查找树,红黑树,AVL树,B~/B+树(B-tree),伸展树——优缺点及比较
- C++模板实现二叉查找树(一 树的数据结构定义与节点插入)
- 树定义及二叉查找树实现
- 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的比较
- 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的比较
- 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比
- 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比
- C++模板实现二叉查找树(一 树的数据结构定义与节点插入)
- 二叉查找树BST和红黑树,果然。。。
- 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的比较
- 8.红黑树的定义,红黑树的性能分析和与平衡二叉树的比较
- 二叉查找树与红黑树概念性质及操作时间复杂度
- 二叉查找树的定义以及几个基本操作
- 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比
- C++模板实现二叉查找树(一 树的数据结构定义与节点插入)
- 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比
- 红黑树的定义与性质