码迷,mamicode.com
首页 > 其他好文 > 详细

为什么应该这样建立平衡搜索二叉树?

时间:2018-05-20 14:16:02      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:平衡   维护   二叉树   不为   搜索二叉树   style   microsoft   family   节点   

如果出现了,

平衡因子为2的情况。

一定存在某个局部。

节点a的左子树b和右子树c均为平衡树(或者不存在)。

a不为平衡树,使调整使a成为平衡树即可。

  a

b   c
不妨设a的左子树b为n+2层 右子树c为n层(n>=0)

b有且仅有一个子树为n+1层 ,将该子树或该子树的子树上移一层即可。

(在维护的过程中,减去刚加入的导致不平衡的一个节点之前的树为平衡树)

若d为n+1层,原树 :

        A 
    B       c
  D e    f g

改变后: 

         B
    D       A
 e    c
f g

若e为n+1层,原树:
        A
  B           c
 d    E
      f g 

改变后:

       E
  B         A
 d f        g c

右侧更长同理。

为什么应该这样建立平衡搜索二叉树?

标签:平衡   维护   二叉树   不为   搜索二叉树   style   microsoft   family   节点   

原文地址:https://www.cnblogs.com/luozhonghao/p/9063077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!