有關二叉樹的計算

2021-07-31 05:05:20 字數 939 閱讀 5460

1、第i層,至多2^(i-1)個結點;

2、深度為k,至多2^k-1個結點;

3、任意一棵二叉樹,都滿足n0=n2+1;

它的推導有利於做其它類似的計算題:結點數n=n0+n1+n2;

除了根結點n-1=0*n0+1*n1+2*n2;以上可推導出n0=n2+1。

4、n個結點的二叉樹,其深度[log2 n]+1(注意求整);

5、對於任意結點i,2i>n,則結點i無左孩子(結點i就是葉子);否則其左孩子結點就是結點2i;

2i+1>n,則結點i無右孩子;否則其右孩子結點就是結點2i;

葉子結點只能在最下兩層;最下層的葉子集中在最左連續位置,倒數第二層的葉子集中在右側連續位置。

例1:一顆完全二叉樹第六層有8個葉結點(根為第一層),則結點個數最多有()個。

此題的易混淆的是,第六層可能是最下層,也有可能是單數第二層。

若是第一種情況,則前五層一定是滿的,此時最多結點(2^5-1)+8=39;

若是第二種情況,由完全二叉樹的特點易知,倒數第二層(第六層)除了最右側的8個,假設左側的結點((2^5-=32)-8=24)個都滿:最下層(第七                                 層)24*2=48個,之前六層有2^6-1=63個,以上共111個結點。

例2:設一顆完全二叉樹共有1699個結點,則該二叉樹中葉子結點數為:

由性質4可得該二叉樹有11層;

由完全二叉樹的特徵,

葉子結點只能在最下兩層,即10、11層。

前10層一定滿,即2^10-1=1013個結點,則11層1699-1023=676,即最下層的葉子集中在最左連續位置,有676個;

第10層滿,2^9=512個,11層676,偶數個,則10層非葉子節點的度數均為2,有676/2=338個,倒數第二層的葉子集中在右側連續位置,有512-338=174個;

以上葉子結點共174+676=850個。

有關二叉樹的學習

參考部落格 有關二叉樹需要實現的功能 有關二叉樹遍歷的知識 中序遍歷 左 根 右 前序遍歷 根 左 右 後續遍歷 左 右 根 列印節點資訊 public void dispaly public inte ce tree public class binarytree implements tree ...

二叉樹計算

術語 1.節點的度 乙個節點含有的子樹的個數稱為該節點的度 2.葉節點或終端節點 度為零的節點 3.非終端節點或分支節點 度不為零的節點 4.父親節點或父節點 若乙個節點含有子節點,則這個節點稱為其子節點的父節點 5.兄弟節點 具有相同父節點的節點互稱為兄弟節點 6.節點的層次 從根開始定義起,根為...

二叉樹的計算

二叉樹是一種典型的非線性結構,如果在乙個資料結構中,每個節點只能有乙個父節點但是可以有多個子節點,這樣的資料結構我們就把它稱為樹,如果我們再加乙個規定,每個父節點最多只有2個子節點的話,那麼這樣的樹我們就把它稱為二叉樹。既然剛才說了二叉樹乙個節點下最多只有2個子節點,那就意味著對於二叉樹中的任意乙個...