平衡的二叉搜索树:是二叉搜索树的特例 二叉搜索树的两个重要特性:处处的局部顺序性以及全局单调性(二叉搜索树的中序遍历序列升序) 两个拓扑结构不相同的二叉树,它们包含相同的一组关键码,则可能具有相同的中序遍历序列 即二叉树的中序遍历序列具有歧义性 拓扑结构不同,中序遍历序列相同的两个二叉搜索树,称为相互等价的BST(binary search tree)
等价的二叉搜索树:在垂直方向上具有一定的自由度 在水平方向上单调,即对于任意一个节点,它左子树中的节点和右子树中的节点不能相互混淆 BST之间的等价转换
经典的平衡二叉搜索树:AVL树 完全二叉搜索树的高度 logN N为树中节点的数量 平衡二叉搜索树(balanced binary search tree) 将失去平衡的二叉搜索树通过等价变换转化为平衡二叉搜索树的过程称为重平衡 主要包含两个关键部分: (1)怎样的二叉搜索树是平衡的二叉搜索树(BBST的平衡标准) (2)设计重平衡算法,将失去平衡的二叉搜索树转换为BBST AVL意义下的适度平衡标准: 二叉搜索树在节点v处的平衡因子定义为:v的左子树高度与右子树高度之差 AVL意义下的平衡:即对于二叉搜索树中的任意一个节点v,它的平衡因子绝对值小于等于1 AVL意义下的平衡二叉搜索树(适度平衡)并不一定是完全二叉搜索树(理想平衡) 理想平衡:对于二叉搜索树中的任意一个节点v,其左子树的高度与右子树的高度相等 与重平衡相关的动态操作:在失去平衡的原始二叉搜索树上进行插入和删除操作