第09章查找a.ppt

第09章查找a

二、二叉平衡树 何谓“二叉平衡树”? 二叉平衡树的查找性能分析 如何构造“二叉平衡树” AVL树 高度平衡的二叉搜索树 AVL树的定义 一棵AVL树或者是空树,或者是具有下列性质的二叉搜索树:它的左子树和右子树都是AVL树,且左子树和右子树的高度之差的绝对值不超过1。 高度不平衡的二叉搜索树 高度平衡的二叉搜索树 二叉平衡树的特点为: 树中每个结点的左、右子树深度之差的绝对值不大于1 。 例如: 5 4 8 2 5 4 8 2 1 是平衡树 不是平衡树 结点的平衡因子balance (balance factor) 每个结点附加一个数字,给出该结点左子树的高度减去右子树的高度所得的高度差。这个数字即为结点的平衡因子balance 。 根据AVL树的定义,任一结点的平衡因子只能取 -1,0和 1。 如果一个结点的平衡因子的绝对值大于1,则这棵二叉搜索树就失去了平衡,不再是AVL树。 如果一棵二叉搜索树是高度平衡的,它就成为 AVL树。如果它有 n 个结点,其高度可保持在O(log2n),平均搜索长度也可保持在O(log2n)。 平衡化旋转 如果在一棵平衡的二叉搜索树中插入一个新结点,造成了不平衡。此时必须调整树的结构,使之平衡化。 平衡化旋转有两类: 单旋转 (左旋和右旋) 双旋转 (左平衡和右平衡

文档评论(0)

1亿VIP精品文档

相关文档