1. 程式人生 > >二叉樹平衡因子

二叉樹平衡因子

一、二叉樹的基本概念

二叉樹:二叉樹是每個節點最多有兩個子樹的樹結構。

根節點:一棵樹最上面的節點稱為根節點。

父節點子節點:如果一個節點下面連線多個節點,那麼該節點稱為父節點,它下面的節點稱為子 節點。

葉子節點:沒有任何子節點的節點稱為葉子節點。

兄弟節點:具有相同父節點的節點互稱為兄弟節點。

節點度:節點擁有的子樹數。上圖中,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;