1. 程式人生 > >二叉樹的基本性質及證明

二叉樹的基本性質及證明

性質1:一棵非空二叉樹的第i層上最多有2^(i-1)個結點,(i>=1)。

性質2:一棵深度為k的二叉樹中,最多具有2^k-1個結點,最少有k個結點。

性質3:對於一棵非空的二叉樹,度為0的結點(即葉子結點)總比度為1的結點多一個,即葉子結點數為n0,度為2的結點數為n2,則有n0=n2+1。

證明:如果n0表示度為0(即葉子結點)的結點數,用n1表示度為1的結點數,n2表示度為2的結點數,n表示整個完全二叉樹的結點總數,則有n=n0+n1+n2,根據二叉樹和樹的性質,可知n=n1+2xn2+1(所有結點的度數之和加1等於結點總數),根據兩個等式可知n0+n1+n2=n1+2xn2+1,即n2=n0-1,也即n0=n2+1。

性質4:具有n個結點的完全二叉樹深度為(log2(n))+1。

證明:根據性質2,深度為k的二叉樹,最多有2^k-1個結點,且完全二叉樹的定義是與同深度的滿二叉樹前邊的編號相同,即它們的結點總數n位於k層和k-1層的滿二叉樹容量之間,即2^(k-1)-1< n <=2^k-1之間,或2^(k-1) <= n <2^k,兩邊同時取對數得,k-1<=log2(n)<k,又因層數為整數,故log2(n)=k-1,即k=log2(n)+1。

性質5:對具有n個結點的完全二叉樹,如果按照從上至下和從左至右的順序對二叉樹的所有結點從1開始編號,則對於任意的序號為i的結點有:

如果i>1,那麼序號為i的結點的雙親結點序號為i/2;

如果i=1,那麼序號為i的結點為根節點,無雙親結點;

如果2i<=n,那麼序號為i的結點的左孩子結點序號為2i;

如果2i>n,那麼序號為i的結點無左孩子;

如果2i+1<=n,那麼序號為i的結點右孩子序號為2i+1;

如果2i+1>n,那麼序號為i的結點無右孩子。