7. 树--平衡二叉树

来源:互联网 发布:js 获取当前日期 周几 编辑:程序博客网 时间:2024/05/17 21:21

平衡二叉树

平衡二叉树(Balanced Binary Tree),又称AVL树

定义

空树,或者任一结点左、右子树高度差的绝对值不超过1,即|BF(T)|1

  • “平衡因子”(Balance Factor,简称BF):BF(T)=hLhR,其中hLhR分别为T的左、右子树的高度

特性

  • nh是高度为h的平衡二叉树的最小结点数,有:
    • nh=nh1+nh2+1
    • nh=Fh+21,h0Fh为斐波那契函数
    • 给定结点数为n的AVL树的查找效率是O(logn2),最大高度是logn2

平衡二叉树的调整

在插入结点时,导致某个结点不平衡,把这个结点称为发现者,插入结点称为麻烦结点

RR插入

麻烦结点在发现者右子树的右边,需要RR旋转(右单旋)
image

LL插入

麻烦结点在发现者左子树的左边,需要LL旋转(左单旋)
image

LR插入

麻烦结点在发现者左子树的右边,需要LR旋转
image

RL插入

麻烦结点在发现者右子树的左边,需要RL旋转
image

注意:有时候插入元素即便不需要调整结构,也可能需要重新计算一些平衡因子

原创粉丝点击