數據結構 | 平衡二叉樹與平衡因子


任一結點的左子樹和右子樹的深度之差不超過1的樹稱為平衡二叉樹。

可通過計算非葉子結點的平衡因子來判斷該樹是否為平衡二叉樹(葉子節點的平衡因子均為0)。

平衡因子 = 左子樹深度 - 右子樹深度

這里有必要辨析一下結點和樹的度;結點的層次、深度;結點和樹的高度(深度)這幾個名詞。

節點的度:節點擁有的子結點個數。

樹的度:樹中結點的最大度數。

結點的層次:從樹根開始定義,根結點為第0層(有些教材中將根結點定位為第1層),它的子結點為第1層,依次類推。

結點的深度:從根結點開始(其深度為0)自頂向下逐層累加的。下圖中,結點B的深度是1,結點D的深度是2,結點H的深度是3。

結點的高度:從葉結點開始(其高度為0)自底向上逐層累加的。下圖中,結點C的高度是2,根結點A的高度是3。

樹的高度(又稱深度):樹中結點的最大層數。下圖樹的高度為3。

平衡二叉樹

圖1. 平衡二叉樹
根結點A的平衡因子 = 結點A的左子樹的深度 - 結點A的右子樹的深度 = 2 - 3 = -1
結點B的平衡因子 = 結點B的左子樹的深度 - 結點B的右子樹的深度 = 1 - 1 = 0
結點C的平衡因子 = 結點C的左子樹的深度 - 結點C的右子樹的深度 = 2 - 1 = 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM