1. 首先看下完全二叉樹的定義:
一棵深度為k,且有個節點稱之為滿二叉樹;深度為k,有n個節點的二叉樹,當且僅當其每一個節點都與深度為k的滿二叉樹中,序號為1至n的節點對應時,稱之為完全二叉樹。
2.一條規則:
對任何一棵二叉樹T,如果其終端結點數為,度為2的結點數為
,則
。
推導過程:
n0是度為0的結點總數(即葉子結點數),n1是度為1的結點總數,n2是度為2的結點總數。
則分支數=2n2+n1 (每個n2節點有2個分支,每個n1結點有1個分支)
另外又有:分支數=n0+n1+n2-1 (每個結點上面對應一個分支,除了根節點上面沒有分支)
2n2+n1=n0+n1+n2-1 得 n0=n2+1
3.假設n為完全二叉樹的結點總數,則有:n=n0+n1+n2
結合2的結論有:n0=(n-n1+1)/2
4.由於n1=1或者0,則
- 當n1=0時(即度為1的節點為0個時,此時n為奇數)或者n為奇數時
n0= (n+1)/2;
-
當n1=1時(即度為1的節點為1個時,此時n為偶數)或者n為偶數
n0= n/2;