您的位置:首页 > 其它

二叉查找树 红黑树 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时,把中间结点上移,分裂
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  2-3-4树 红黑树