滿二叉樹各種節點數目的計算


1. 二叉樹的基本性質

  • 二叉樹的第i層至多有2i-1個結點(i>=1)

證明:(歸納法)

   歸納基:i=1時,只有一個結點,2i-1=20=1;

   歸納假設:假設對所有的i命題成立;

   歸納證明:二叉樹中每個結點最多有兩個子樹,則第i+1層的結點數為2*2i-2=2i-1.

  • 深度為h的二叉樹至多有2h-1個結點(h>=1)

    證明:n=20+21+...+2h-1=2h-1.(等比數列)

  • 對於一棵二叉樹,若含有n0個葉子結點,n2個度為2的結點,則必存在關系式:n2=n0-1

    證明:設二叉樹的結點總數為n=n0+n1+n2;

       二叉樹上的分支總數為b=n1+2n2;

            又b=n-1;

            故:n2=n0-1.

  • 具有n個結點的完全二叉樹的深度為[log2n]+1.[]表示取整

    證明:設完全二叉樹的深度為k,則:2k-1<=n<2k

       即k-1<=log2n<k

       因為k只能取整數,所以k=[log2n]+1.

  • 若對含n個結點的完全二叉樹從上到下且從左至右進行1至n的編號,則對完全二叉樹中任意一個編號為i的結點:

    若i=1,則該結點是二叉樹的根,無雙親,否則,編號為[i/2]的結點為其雙親結點;

    若2i>n,則該結點無左孩子結點,否則,編號為2i的結點為其左孩子結點;

    若2i+1>n,則該結點無右孩子結點,否則,編號為2i+1的結點為其右孩子結點。

    證明:設完全二叉樹中第i個結點的位置為第k層第j個結點,即i=2k-1-1+j;

       則左孩子結點的索引為:l=2k-1+2(j-1)+1=2*(2k-1-1+j)=2*i;

       左孩子結點的索引為:r=2k-1+2(j-1)+2=2*(2k-1-1+j)+1=2*i+1;

 2. 二叉樹中各種結點數目的計算

  若一個完全二叉樹的結點數目為n,求n0,n1,n2,數的高度h,左孩子結點數目nl和右孩子結點數目nr?

  (n0為度為0的結點,n1為度為1的結點,n2為度為2的結點)

  求解思路:

  樹的高度h=[log2n]+1;

  因為是完全二叉樹,所以1~h-1層全滿;

  前h-1層的結點數目為nh-1=2h-1-1;

  第h層的葉子結點數目為nc1=n-nh-1;

  第h-1層的葉子結點數目為nc2=2h-2-ceil(nc1/2);(ceil為向上取整)

  所以n0=nc1+nc2;

  n2=n0-1;

  n1=n-n0-n2;

  左孩子結點數目nl=n2+n1;

  右孩子結點數目nr=n2;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM