专业建站报价湖南长沙装修公司
一,平衡二叉树插入失衡情况及解决方案
由于各种的插入导致的不平衡,每次调整都是最小不平衡子树。
 LL:由于在结点A的 左孩子的左子树 插入结点导致失衡。
  右单旋:①将A的 左孩子B 向右上旋转 代替A成为根节点
       ②将A结点 向右下旋转 成为B的 右子树 的根节点
       ③B的原来 右子树 成为A的 左子树。
 
RR:由于在结点A的 右孩子的右子树 插入结点导致失衡。
  左单旋:①将A的 右孩子B 向左上旋转 代替A成为根节点
       ②将A结点 左下旋转 成为B的 左子树 的根节点
       ③B的原来 左子树 成为A的 右子树。
 
LR:由于在结点A的 左孩子的右子树 插入结点导致失衡。
先左旋后右旋:先让A的左孩子B的右子树的根节点C左上旋提升到B位置,在让C右上旋提升到A位置。
 
RL:由于在结点A的 右孩子的左子树 插入结点导致失衡。
先右旋后左旋:先让A的右孩子B的左子树的根节点C右上旋提升到B位置,在让C左上旋提升到A位置。
 
二,平衡二叉树删除步骤
①删除结点(方法同二叉排序树)
   1.如果删除的是叶子结点,直接删除。
   2.如果删除的结点只有一颗子树,则用子树顶替删除位置。
   3.如果删除的结点有两颗子树,则直接前驱(或直接后继)结点顶替,并转为对直接前驱(或直接后继)的删除。
 ②一路向北(上)找到最小不平衡子树,找不到就结束。
 ③找到最小不平衡子树下,“个头最大”的儿子和孙子。
 ④根据孙子位置,调整平衡(孙子相对于爷位置LL,RR,LR,RL)。
   1.如果孙子在LL,儿子右单旋。
   2.如果孙子在RR,儿子左单旋。
   3.如果孙子在LR,孙子先左旋后右旋。
   4.如果孙子在RL,孙子先右旋后左旋。
 ⑤如果不平衡向上传导,继续②。
 
三,平衡二叉树删除实例
1.RR型

1.RL型

1.平衡向上传导

 
 
