」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 實施輪換

實施輪換

發佈於2024-08-01
瀏覽:687

透過執行適當的旋轉操作,不平衡的樹變得平衡。重新平衡樹部分說明如何在節點上執行旋轉。下面的程式碼給出了 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,使 A 成為 B 的右孩子。 right;
15 更新節點A和節點B的高度;
16 } // 方法結束

Implementing Rotations

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

版本聲明 本文轉載於:https://dev.to/paulike/implementing-rotations-m91?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3