繁体   English   中英

AVL插入对树的混乱

[英]AVL insertion on a tree confusion

我对在AVL树上插入如何工作感到有些困惑。 我知道树必须始终保持平衡。 当我尝试在余额下方插入21时,需要重新计算余额。 如果有人可以向我解释这是如何完成的,我将不胜感激。 谢谢!

    BEFORE INSERTING 21                          
           16
           /\
          9  30
         /   / \
        4   23 34
           / \ 
          20 26 


     AFTER INSERTING 21
           16
           /\
          9  30
         /   / \
        4   23 34
           / \ 
          20 26 
           \
           21 

您需要在左子树和右子树之间存在多个高度差的级别上旋转。

BEFORE INSERTING 21                          
       16
       /\
      9  30
     /   / \
    4   23 34
       / \ 
      20 26 


AFTER INSERTING 21
       16
       /\
      9  30
     /   / \
    4   23 34
       / \ 
      20 26 
       \
       21 

在节点30处的高度差为2。因此,在节点30处向右旋转。

AFTER ROTATION
       16
       / \
      9   23
     /   /  \
    4   20  30
         \  / \
         21 26 34

有单旋转和双旋转。 在您的情况下,一个旋转就足够了。 但这并非每次都如此。 看看旋转是如何工作的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM