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

如果出现了,

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

右侧更长同理。

猜你喜欢

转载自www.cnblogs.com/luozhonghao/p/9063077.html