首頁  >  文章  >  Java  >  實施輪換

實施輪換

王林
王林原創
2024-07-25 12:17:23871瀏覽

透過執行適當的旋轉操作,不平衡的樹變得平衡。重新平衡樹部分說明如何在節點上執行旋轉。下面的程式碼給出了 LL 旋轉的演算法,如下圖所示。

1balanceLL(TreeNode A, TreeNode ParentOfA) {
2 設 B 為 A 的左孩子。
3
4 if (A 是根)
5 設 B 為新根
其他 6 個{
7 if (A 是parentOfA 的左孩子)
8 設 B 為 ParentOfA 的左孩子;
其他9個
10 設B是parentOfA的右孩子;
11 }
12
13 將 B.right 賦值給 A.left,使 T2 成為 A 的左子樹;
14 將 A 賦值給 B.right,使 A 成為 B 的右孩子;
15 更新節點A和節點B的高度;
16 } // 方法結束

Implementing Rotations

請注意,節點 AB 的高度可以更改,但樹中其他節點的高度不會更改。您可以以類似的方式實現 RR、LR 和 RL 旋轉。

以上是實施輪換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn