二叉樹平衡因子
一、二叉樹的基本概念
二叉樹:二叉樹是每個節點最多有兩個子樹的樹結構。
根節點:一棵樹最上面的節點稱為根節點。
父節點、子節點:如果一個節點下面連線多個節點,那麼該節點稱為父節點,它下面的節點稱為子 節點。
葉子節點:沒有任何子節點的節點稱為葉子節點。
兄弟節點:具有相同父節點的節點互稱為兄弟節點。
節點度:節點擁有的子樹數。上圖中,13的度為2,46的度為1,28的度為0。
樹的深度:從根節點開始(其深度為0)自頂向下逐層累加的。上圖中,13的深度是1,30的深度是2,28的深度是3。
樹的高度:從葉子節點開始(其高度為0)自底向上逐層累加的。54的高度是2,根節點23的高度是3。
對於樹中相同深度的每個節點來說,它們的高度不一定相同,這取決於每個節點下面的葉子節點的深度。上圖中,13和54的深度都是1,但是13的高度是1,54的高度是2。
a)平衡二叉樹
此節點往下 左子樹深度 - 右子樹深度=平衡因子
1:5的結點平衡因子就是 3 - 2 = 1;以5為跟節點,5的深度是0,2 1 4 3都是以5為跟節點的左子樹 6 7 都是以5為跟節點的右子樹
深度對應:5深度為:0 2深度為:1 1和4深度為:2 3深度為:3 6深度為:1 7深度為:2
左子樹深度3 右子樹深度2
2:2的結點平衡因子就是 1 - 2 = -1;(左子樹:1節點1層 右子樹6 7節點2層)
遮蔽2以上的節點 此時以2為跟節點:左子樹
2深度為:0 1深度為:1 4深度為:1 3深度為:2
左子樹深度1 右子樹深度2
3:4的結點平衡因子就是 1 - 0 = 1;
4為跟節點 遮蔽其他
4深度為:0 3深度為:1 左子樹深度1 右子樹深度0
4:6的結點平衡因子就是 0 - 1 = -1;
葉子結點都是為 0;
(b)不平衡二叉樹
此節點往下 左子樹深度- 右子樹深度=平衡因子
3 的結點平衡因子就是 2 - 4 = -2;
1 的結點平衡因子就是 0 - 1 = -1;
4 的結點平衡因子就是 0 - 3 = -3;
5 的結點平衡因子就是 0 - 2 = -2;
6 的結點平衡因子就是 0 - 1 = -1;
葉子結點都是為 0;