为了t提高二叉搜索树的查找效率,我们要尽可能的保持树的高度不要过高,也就是不要一边倒,让树的左右子树基本保持相同的高度或者差不多的节点数目,从而我们引入了 平衡二叉树的概念。
一、什么是平衡二叉树?
平衡因子(Balance Factor,简称BF) :
BF(T) = hL-hR
, 其中hL和hR分别为T的左、右子树的高度
平衡二叉树(Balanced Binary Tree)(AVL树) : 空树,或者 任一结点左、右子树高度差的绝对值不超过1,即|BF(T) |≤ 1
二、平衡二叉树最大高度问题
平衡二叉树的高度能达到log2n吗?
设 h 高度为h的平衡二叉树的最少结点数。结点数最少时:
此时满足 :
结论 :给定结点数为 n的AVL树的 最大高度为O(log2n)
三、平衡二叉树的调整
要保证始终是平衡二叉树,就必然要在 插入 与删除操作后对树进行调整,让其的
|BF(T) |≤ 1
所以平衡二叉树的重要操作是调整树,下篇笔记将介绍四种平衡二叉树插入调整