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

如果出现了,

平衡因子为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  

改变后: 

         B
    D       A
           e    c

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

改变后:

       E
  B         A
d  f      g   c

右侧更长同理。

posted @ 2018-05-20 12:19  luozhonghao  阅读(204)  评论(0编辑  收藏  举报