十3、Mysql之平衡二叉樹(AVL樹)

一、平衡二叉樹(AVL樹)
  性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,而且左右兩個子樹都是一棵平衡二叉樹;
  AVL樹如圖: 3d

  非AVL樹如圖:
致使AVL樹失去平衡大體分爲4種:
  LL:LeftLeft,也稱「左左」。插入或刪除一個節點後,根節點的左孩子(Left Child)的左孩子(Left Child)還有非空節點,致使根節點的左子樹高度比右子樹高度高2,AVL樹失去平衡。
  RR:RightRight,也稱「右右」。插入或刪除一個節點後,根節點的右孩子(Right Child)的右孩子(Right Child)還有非空節點,致使根節點的右子樹高度比左子樹高度高2,AVL樹失去平衡。
  LR:LeftRight,也稱「左右」。插入或刪除一個節點後,根節點的左孩子(Left Child)的右孩子(Right Child)還有非空節點,致使根節點的左子樹高度比右子樹高度高2,AVL樹失去平衡。
  RL:RightLeft,也稱「右左」。插入或刪除一個節點後,根節點的右孩子(Right Child)的左孩子(Left Child)還有非空節點,致使根節點的右子樹高度比左子樹高度高2,AVL樹失去平衡。


四種失去平衡的狀況下對應的旋轉方法:
  LL旋轉步驟:
    1)、舊根節點的左孩子爲新根節點,
    2)、舊根節點變爲新根節點的右孩子,
    3)、舊根節點的左孩子的右孩子爲舊根節點的左孩子 cdn

  RR旋轉步驟:
    1)、舊根節點的右孩子爲新根節點,
    2)、舊根節點變爲新根節點的左孩子,
    3)、舊根節點的右孩子的左孩子爲舊根節點的右孩子
  LR旋轉:
    1)、根節點的左孩子進行RR旋轉,
    2)、根節點進行LL旋轉,
  RL旋轉:
    1)、根節點的右孩子進行LL旋轉,
    2)、根節點進行RR旋轉,
相關文章
相關標籤/搜索