AVL樹中的插入的執行方式與在二叉搜索樹中執行的方式相同。 新節點作為葉節點添加到AVL樹中。 但是,它可能會導致違反AVL樹屬性,因此樹可能需要平衡。
可以通過應用旋轉來平衡樹。 僅當插入新節點時任何節點的平衡因數受到干擾時才需要旋轉,否則不需要旋轉。
根據插入的類型,旋轉分為四類。
編號 | 旋轉 | 描述 |
---|---|---|
1 | LL旋轉 | 新節點被插入到關鍵節點的左子樹的左子樹中。 |
2 | RR旋轉 | 新節點被插入到關鍵節點的右子樹的右子樹中。 |
3 | LR旋轉 | 新節點被插入到關鍵節點的左子樹的右子樹中。 |
4 | RL旋轉 | 新節點被插入到關鍵節點的右子樹的左子樹中。 |
示例: 通過以給定順序插入以下元素來構造AVL樹。
63, 9, 19, 27, 18, 108, 99, 81
從給定元素集構造AVL樹的過程如下圖所示。
在每一步,必須計算每個節點的平衡因數,如果發現它大於2
或小於-2
,那麼需要一個旋轉來重新平衡樹。 旋轉類型將通過插入元素相對於關鍵節點的位置來估計。
插入所有元素以維持二叉搜索樹的順序。
上一篇:
平衡搜索樹(AVL樹)
下一篇:
B樹