1. 在二叉樹的第 i 層上,至多有 2 的(i-1)個節點 (i>=1).
第一層:2^0 只有一個根節點
第二層:2^1 根節點生出2個子節點
第三層:2^2 . 第二層的兩個節點,每個節點生出2個子節點。所以是 2*2
.
.
.
第K層:2^(k-1)
至多有多少個,也就是爲滿二叉樹的情況下。
2. 深度爲 K 的二叉樹至多有(2^k)-1 個節點.
根據性質1 ,
第一層 :2^0 第二層:2^1 第三層:2^2 ...第k層:2^(k-1)。
這是一個等比數列。將這些相加,就是2^0+2^1 +2^2+2^3+⋯+2^(k-1)=(2^k)-1。
3. 對任何一棵二叉樹T,如果其終端節點(度爲0的節點,也就是葉子節點)數爲 a0,度爲2的節點數爲 n2 , 則 n0=n2+1;
設n1爲度是1的節點數,n2爲度是2的節點數,n0爲度是0的節點數。
從節點數的角度來看:
T的節點總數爲:n=n0+n1+n2
從連接線數的角度來看:
從分支進入:除了根節點外,每個節點都有一個分支進入,所以,總的連接線數爲:總的節點數-1,即 n-1;
從出去的分支:從每個節點出去的分支來考慮連接線數。度爲0的節點,即葉子結點沒有分支出去;度爲1的節點有1個分支出去;度爲2的節點有2個分支出去。總的連接線數爲:n1+2(n2)
即: n-1=n1+2(n2)
聯合幾個公式:n=n0+n1+n2=n1+2(n2)+1
得出: n0=n2+1
4. 具有n個節點的完全二叉樹 的深度爲 [log2n」+1 .( [x」代表不大於x的最大整數)
深度爲k的滿二叉樹的節點數n一定是(2^k)-1 。所以,倒推得到滿二叉樹的深度爲k=log2(n+1),
完全二叉樹的節點數一定少於等於同等深度的滿二叉樹的節點數(2^k)-1. 但是一定大於[2^(k-1)]-1 (肯定比少一層的多吧)。這樣就滿足了:[2^(k-1)]-1<n<=(2^k)-1.
5. 如果對一棵有n個節點的完全二叉樹(其深度爲 [log2n」+1)的節點按層序編號,對任一節點i(1<=i<=n),有:
1. 如果i=1,則節點i是二叉樹的根,無雙親;如果i>1,則其雙親是節點 [i/2」;
2.如果是2i>n,則節點i無左孩子;否則其左孩子是節點2i. (一個節點的左孩子的編號是其本身的2倍)
3. 如果2i+1>n,則節點i無右孩子;否則其右孩子是節點2i+1. (一個節點的右孩子的編號是其本身的2倍+1)