一棵完全二叉樹共有結點則在該二叉樹中有多少葉子結點

時間 2021-09-15 00:13:00

1樓:迮玉芬能寅

完全二叉樹是指這樣的二叉樹:除最後一層外,每一層上的結點數均達到最大值;在最後一層上只缺少右邊的若干結點。

更確切地說,如果一棵具有n個結點的深度為k的二叉樹,它的每一個結點都與深度為k的滿二叉樹中編號為1~n的結點一一對應,這棵二叉樹稱為完全二叉樹。

可以根據公式進行推導,假設n0是度為0的結點總數(即葉子結點數),n1是度為1的結點總數,n2是度為2的結點總數,由二叉樹的性質可知:n0=n2+1,則n=

n0+n1+n2(其中n為完全二叉樹的結點總數),由上述公式把n2消去得:n=

2n0+n1-1,由於完全二叉樹中度為1的結點數只有兩種可能0或1,由此得到n0=(n+1)/2或n0=n/2,合併成一個公式:n0=取整((n+1)/2),就可根據完全二叉樹的結點總數計算出葉子結點數。

2樓:貫翠花可媼

設一顆二叉樹葉子節點個數為l,度為1的節點個數為m,度為2的節點個數為n.

顯然易知:一顆二叉樹的節點數

=這個樹的度加1(因為每個節點都是前一個節點的度,根節點除外,所以要加1)故有l

+m+n

=2n+m

+1---->l=

n+1(這個對任意二叉樹都成立)

由於是完全二叉樹,則度為1的節點不是1個就是0個!(這個你可觀察任何一個完全二叉樹)若m=

1,則l+m

+n=(n

+1)+1+

n=700推出n

=349---》l

=350若m=

0,則l+m+n

=n+1+0+n

=700n=

699/2除不盡。故l=

350,m=

1,n=349

3樓:巢理青康震

前n-1

層共有2^(n

-1)-

1個節點,按答案:2^(n

-1)-

1=700

-350

=350。n無整數解!所以答案應該是錯的,你的應該是對的。

4樓:將磬佔靖琪

根據完全二叉樹的性質,葉結點的個數應該為:(結點總數/2)取上整,本題則為700/2=350,取上整還是350,所以有350個葉子節點

設一棵完全二叉樹共有結點,則在該二叉樹中有

你錯誤在 所以缺少了11個右結點 的 右 字上。是事實是最後一層上少了倒著少了11個結點。明確的說是少了6個右,5個左。所以,應該256 11,但是由於最後一層少了11個結點,所以上一層多了5個葉子結點,所以最終答案應該是 256 11 5 250 根據二叉樹的性質 對於一棵非空的二叉樹,如果葉子節...

一棵n個結點的完全二叉樹以向量(陣列)作為儲存結構,試設計非遞迴演算法對該完全二叉樹進行前序遍歷

空空之光 include define array max 12 int main int tree array max for int i 0 i array max i tree i i 1 int flag 0 記錄當前葉子的遍歷位置,0 剛遍歷到這個葉子,1 已經遍歷完成該葉子的左兒子,2 ...

設二叉樹共有結點,其中度為1的結點有,則該二叉樹中的葉子結點數為

早飯要吃白煮蛋 二叉樹結點種類為三種 度為0的結點,即葉子結點 度為1的結點 度為2的結點。所有二叉樹共有的一個性質是 度為0的結點永遠比度為2的結點多1個。這題的解答如下 假設度為0的結點數為x個,則x 10 x 1 150,則x 70.5,不可能有小數的結點個數,所以選擇d,不可能有這樣的二叉樹...