AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. L...
分类:
其他好文 时间:
2014-08-03 23:03:06
阅读次数:
273
平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O(log n)
AVL树的旋转一共有四种情形,注意所有旋转情况都是围绕着使得二叉树不平衡的第一个节点展开的。
1. LL型
平衡二叉树某一节点的左孩子的左...
分类:
其他好文 时间:
2014-08-01 19:50:02
阅读次数:
226
二叉查找树查找插入和删除的时间复杂度都为O(log N)。但它有个弊端。如果输入的数据是排序数据,那么代价巨大,因为树将只由那么没有左(或右)儿子的节点组成。一种解决方法是找平衡条件:任何节点的深度不能过深。最老的一种平衡查找树,即AVL树。另外,较新的方法是放弃平衡条件,允许树有任何的深度,但是在每次操作之后要使用一个调整规则进行调整,使得后面的操作效率更高,这是自调整类结构,例如伸展树。
...
分类:
其他好文 时间:
2014-07-30 17:29:14
阅读次数:
344
实现: 1 #ifndef AVL_TREE_H 2 #define AVL_TREE_H 3 4 #include "dsexceptions.h" 5 #include // For NULL 6 using namespace std; 7 8 // AvlTree...
分类:
其他好文 时间:
2014-07-24 10:01:43
阅读次数:
317
平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii
and Landis)于1962年首先提出的,所以又称为AVL树。
定义:平衡二叉树或为空树,或为如下性质的二叉排序树:
(1)左右子树深度之差的绝对值不超过1;
(2)左右子树仍然为平衡二叉树.
平衡因子BF=左子树深度-右子树深度....
分类:
其他好文 时间:
2014-07-22 00:08:33
阅读次数:
257
平衡二叉树:是一颗空树;或者具有以下性质的树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
平衡二叉树的关键在于插入结点时如何保持整棵树的平衡性。
下面是不平衡发生的四种情况:
(1)平衡二叉树某一节点的左孩子的左子树上插入一个新的节点,使得该节点不再平衡。
LL型(左孩子的左子树)
由于在A的左孩子B的左子树上插入结点F,使A的平衡因子由1增至...
分类:
其他好文 时间:
2014-07-10 22:49:30
阅读次数:
235
在前面的博文中,我们已经介绍了数据结构之二分查找树的相关知识,二分查找的提出主要是为了提高数据的查找效率。同一个元素集合可以对应不同的二分查找树BST,二分查找树的形态依赖于元素的插入顺序。同时我们也已经知道,如果将一个有序的数据集依次插入到二查找树中,此时二分查找树将退化为线性表,此时查找的时间复杂度为o(n)。为了防止这一问题的出现,便有了平衡二叉树AVL的存在价值。平衡二叉树从根本上将是为了防止出现斜二叉树的出现,从而进一步提高元素的查找效率,保证元素查找的时间复杂度为o(logn),显然,平衡二叉树...
分类:
其他好文 时间:
2014-07-04 08:04:40
阅读次数:
1711
问题
Python中的二叉树查找算法模块
思路说明
二叉树查找算法,在开发实践中,会经常用到。按照惯例,对于这么一个常用的东西,Python一定会提供轮子的。是的,python就是这样,一定会让开发者省心,降低开发者的工作压力。
python中的二叉树模块内容:
BinaryTree:非平衡二叉树 AVLTree:平衡的AVL树 RBTree:平衡的红黑树
...
分类:
编程语言 时间:
2014-07-04 07:47:15
阅读次数:
287
在《算法导论》第12和13章为基础上实现了AVL树,关键部分有注释。...
分类:
其他好文 时间:
2014-07-03 13:22:56
阅读次数:
179
为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用...
分类:
其他好文 时间:
2014-06-30 12:39:53
阅读次数:
257