顺序构建平衡二叉树

按{12, 24, 36, 90, 52, 30}的顺序构建平衡二叉树

第一步

12

第二步

12

        24

第三步

12

        24

                36

此时的结点12的平衡因子BF变成|-2|>1(右子树过高),要左旋(逆时针旋转),

  12  

    \

      24         24

       \        /  \

        36     12   36 

                左旋后

第四步

插入90, 结点24的BF是-1,二叉树仍然保持平衡.

      24

     /  \

    12   36 

          \

           90

第五步

插入52, 结点36的BF是-2,结点90的BF是+1,两个符号不一致,结点90和52先右旋,

    此时,结点52的BF是-1,结点36的BF是-2,再对结点36,52,90进行左旋.

       24             24                24

     /  \           /  \              /  \

    12   36            12   36                12    52

          \              \              / \

           90            52             36  90

          /                \

         52                90

                    右旋后             左旋后

第六步

插入30, 结点52的BF是+1,结点24的BF是-2,两个符号不一致,

    结点30,36和52先右旋,此时,结点36的BF是-1,结点24的BF是-2,

    结点12,24和36进行左旋.

        24                             24                                       36

      /        \                     /          \                              /          \

   12           52            12           36                       24           52

               /         \                    /         \                 /         \             \

            36          90              30          52            12        30            90

          /                                                      \

       30                                                        90

                                               右旋后                               左旋后

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值