求二叉樹的葉子節(jié)點 設某棵二叉樹的高度為10,則該二叉樹上葉子結點最多有多少(請詳細解答)謝謝?
設某棵二叉樹的高度為10,則該二叉樹上葉子結點最多有多少(請詳細解答)謝謝?如果根節(jié)點的高度為1,那么在高度為10的二叉樹中,全二叉樹的葉子最多,葉子數為2^(10-1)=2^9=512參考算法如下:
設某棵二叉樹的高度為10,則該二叉樹上葉子結點最多有多少(請詳細解答)謝謝?
如果根節(jié)點的高度為1,那么在高度為10的二叉樹中,全二叉樹的葉子最多,葉子數為2^(10-1)=2^9=512
參考算法如下:計算二叉樹中的葉子節(jié)點數。由于葉節(jié)點是二叉樹中左、右子節(jié)點不存在的節(jié)點,可以在二叉樹遍歷過程中對這些特殊節(jié)點進行計數,完成葉節(jié)點數的統(tǒng)計。這個統(tǒng)計可以在任何遍歷模式下給出。下面的算法是用中間順序遍歷實現(xiàn)的:/****function:計算葉節(jié)點數輸入:二叉樹的根節(jié)點輸出:葉節(jié)點數**/intcountleaf(BiTree*P){staticintcount=0//注意這里是一個靜態(tài)變量,或者如果(P!=null){count=countleaf(P->lchild)如果((P->lchild==null)&(P->rchild==null))count=count 1 count=countleaf(P->rchild)}return}
I calculate 5
假設N0是階數為0的節(jié)點總數(即葉節(jié)點數),N1是階數為1的節(jié)點總數,N2是階數為2的節(jié)點總數。從二叉樹的性質可以看出,N0=N2+1,然后n=N0+N1+N2(其中n是完全二叉樹的節(jié)點總數)N1-1,因為完全二叉樹中1的節(jié)點數只有兩個可能的0或1,所以可以得到N0=(n+1)/2或N0=n/2,并將它們組合成一個公式:N0=(n+1)/2.根據一棵完整的二叉樹中的節(jié)點總數計算出葉節(jié)點數