当前位置:   article > 正文

交换二叉树中每个结点的左孩子和右孩子_数据结构:平衡二叉树

交换二叉树每个结点的左孩子和右孩子

3759eac606eae5ac61de5f2f62b4e768.png

1.基本概念

    平衡二叉树(AVL树),或为空树,或为如下性质的二叉排序树:左右子树深度之差的绝对值不超过1;左右子树仍然为平衡二叉树.

  平衡因子BF=左子树深度-右子树深度.

  平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。

  如图所示为平衡树和非平衡树示意图:9fcaa14c2336f2524695dc833bc867f4.png

2.平衡二叉树的算法思想

若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性。首先要找出插入新结点后失去平衡的最小子树根结点的指针。然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树。当失去平衡的最小子树被调整为平衡子树后,原有其他所有不平衡子树无需调整,整个二叉排序树就又成为一棵平衡二叉树。

  失去平衡的最小子树是指以离插入结点最近,且平衡因子绝对值大于1的结点作为根的子树。假设用A表示失去平衡的最小子树的根结点,则调整该子树的操作可归纳为下列四种情况。

2.1 LL型平衡旋转法

由于在A的左孩子B的左子树上插入结点F,使A的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/692774
推荐阅读
相关标签
  

闽ICP备14008679号