数据结构--二叉平衡树

发布时间 2023-07-19 11:04:19作者: harper886

二叉平衡树

回顾:二叉排序树的查找

image-20230719100259822

二叉排序树的不平衡会影响查找效率,所有我们要尽量让二叉树的形态均衡.

image-20230719100344123

AVL树(平衡二叉树)

  1. 必须是二叉排序树

  2. 左子树和右子树的高度之差的绝对值小于等于1

  3. 左子树和右子树也是平衡二叉排序树

    平衡因子

    该结点左子树与右子树的高度差.

    平衡因子=结点左子树的高度-结点右子树的高度

image-20230719101112497

判断平衡二叉树

image-20230719101403811

对于一个右n个结点的AVL树,其高度保持再O(logn)数量级,ASLA也保持在O(logn)量级.

平衡调整办法1

有可能导致失衡,即出现平衡因子大于1的结点

如果在一颗AVLA树中插入一个新结点后造成失衡,则必须重新调整树的结构,让其恢复平衡

image-20230719104448242

平衡调整的四种类型

A:失衡结点 不止一个失衡结点时,为最小失衡子树的结点

B:A结点的孩子,C结点的双亲.

C:插入新节点的子树.

image-20230719104906630

调整原则:

  1. 降低高度
  2. 保持二叉排序树性质

image-20230719105432457