1、平衡二叉树的基本概念
平衡二叉树构建的基本思想是在构建二叉搜索树的过程中,每当插入一个结点时,先检查是否因插入而破坏了树的平衡性,若是,则找出最小不平衡子树。
最小不平衡子树:距离插入结点最近的,且平衡因子的绝对值大于1的结点为根的子树。
在保持二叉搜索树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。
二叉搜索树,又称二叉排序树,二叉查找树(Binary Sort Tree,BST)。具有以下性质:
若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值;
它的左右子树也分别为二叉排序树;
也可以是空树。
平衡二叉树中引入了一个概念:平衡二叉树结点的平衡因子。
平衡因子(Balance Factor):该结点的两个子树,即左子树和右子树的高度差,即用左子树的高度减去右子树的高度。AVL中,BF的取值范围为-1,0和1。