数据结构AVL树

等价二分查找树的结构

定义: 中序白能力的相同的任意两个的二叉树的,想出相互等价的,。

引理7:

     有N个节点的组成的任何一个二分茶轴的树的T的二分不超过的log2n 的二分查找树等价。

证明:

   对T做中序遍历设对应的比哪里的O(T)={t1,t2,,,tn};

考虑的有N个接待你的组成的完全二叉树的S积极遍历的序列G(s)={s1,s1,,,,sn};

只要按照的sj.key=t.key的愿测将T的各个节点中分别分支给S中的对应的节点。则必须S

必须T等价。此时,根据的定理4: S的高度logn.

 7.2.3  等价变换。

定理的交换:

 

7.2.3 等价交换的

引入带你管告诉我们:  每一刻的二分掺渣树斗鱼摸一个平衡二叉树的相互等价。

zig 旋转

如图:

 

if( v.isLeft){

 /返回词典中的所有条目个一个迭代器

public Iteratior entrites(){

   List list =new List_DLNode();

  concatnate(list,(BSTreeNode) root);

   return list.elements();

}

 

/*******************辅助的方法***********************/

 

} 

 

7.1.8  二分查找书的平均性能;

根据 引理 3.引理4.引力7.5 分类,对二分叉树的茶壶是的,插入和删除的操作,在最坏的情况下都是需要

O(n) 的时间才成完成。 就这一点,而言,第六掌实现的磁带你结构没有区别。那么,就君君复杂度而言。

二分叉树的性能有啊经然后和,是否还是这个水平。

  实际 上,这里的“平均”依次的定义并不严格,。下面,我们将对随机的统计的口径,给出二分查找树的平均性能。

随机的生成:

 不妨考虑关键码沪指的n个条目,{e1,e2,...en} ,对于这些条目的人一个全配列的o(e1,e2,e3) ,若从孔数开始。依次调用。

insert 算法将查插入的算法,都可以到的这个n个条目。都可以的得到N个条目的一颗二分察州署的T(O)。

 

定义七:  与碎金的相对应的而分叉上奏的T(V),乘坐G的生成二分查找树。

 

定义: 与碎金的排列G对应的二分阐述的排列i,乘坐生成吃的二分叉树的。

 

7.2.4  AVL 树

平衡因子:

在二分查住的中,恩于i个界定啊的V平和的因子,定义为,左右差的告诉差,记错

balFac(v) =height(lc(v)-height)

这里需要再次枪挑,空树的告诉的定义为-1.

AVL 树:

 根据平衡因子,我们可以一种特殊的二分檫檫树的:

定义 : 在 而分叉书中,若松与的平和内因的句对之的不产故宫,则成为 T为一个AVL树/。

 

AVL 结论VL的树的人一个字数必然是AVL树。

平衡结果, AVL的人一个字数也必是AVL树。

证明:

   数学归纳法证明:

考察的人一个AVL的树T。

7.2.2  等价二分查找树

定义七: 中学遍历序列相同的任意两颗二叉树,乘坐相互等价的。

比如在在图七中: T与S就是一对等价的二叉树。

 

等价交换: 

zig   旋转:

zag  选装:

 堆成的,嘉定节点v 是节点 P的有孩子,z和Y分别是v 的右孩子树。X为p的左孩子树。

所谓的围绕节点的P的zag 旋转操作,节奏zag(p) ,就是将pe 作为的 v 的左孩子,将z作为的v 的右孩子。

将Y和X分别为P的右孩子和左子树。

 

效率:

 无论是zig(p)和zag(p),都设计的常熟基本操作,于是便有如下结论:

 引理: zig 和 zag 旋转操作都可以在长苏时间内完成。

 

效果:

 根据 上述的两类情况的处理方法,可以得出一下的结论:

观察结论: 

在 AVL树中插入节点X后,如g(x) 是失衡的最低节点,则经过上述的单选或双选调整之后,不仅

能使在巨虎重新品格很同时高度也复原,而且整棵树的液晶重获平衡。

 

因此,可进一步得出一下结论:

引理: 在AVL 中插入一个接待你后,至多只需压迫经过两次选装可是之回复平很。

 双选:

 

失衡的传播:

 与节点插入机器不同的是,在删除的之后u,经过单选或双选调正之后可以是的局部回复平衡。

但全局依然可能存在失衡的现象。请注意在失衡传播。

 

幸运的是: 就一下事实的意义而言,这种传播时单调的。

 

观察结论: 在删除AVL节点后,经过上述的单选或双选调正,最深的是和的系欸的那的深度必然减少。

也就说:

   

 即使胡出现新的失衡节点,也只能出现在高处,因此我们,只需要急促宁乡而傻瓜,找到

新的最真的是很Jedi那。
 

效率:

 上述调整过程中在AVL撒谎才能胡一个节点后,之多 jO(logn)次选装操偶组即可使得回府平衡。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(【03.数据结构】)