二叉樹(一)

二叉樹小述
二叉樹是n(n>=0)個結點的有限集合,該集合或者爲空集(空二叉樹),或者由一個根節點和兩顆互不相交的,分別稱爲左子樹和右子樹的二叉樹組成。

特點:1、每個結點至多有兩顆子樹。2、二叉樹的子樹有左右之分,次序不能顛倒。

二叉樹的形態:1、空樹 2、只有根結點 3、只有左結點 4、只有右結點

二叉樹的性質:
1、二叉樹的第i層上至多有2^(i-1)個結點,其中i>=1。

2、深度爲h的二叉樹中至多有2^h - 1個結點。

3、對於任何一顆二叉樹T,如果其終端結點數爲n0,度爲2的結點數爲n2,則n0 = n2 + 1。

推導如下:假設度爲1的結點數爲n1,則n = n0 + n1 + n2。另外,通過二叉樹我們可知,二叉樹中的連接總數總是等於總結點數n - 1,並且等於n1 + 2*n2。則 n - 1 =  n1 + n2 + n2,此外將n代入得到 n0 + n1 + n2 -1 = n1 + n2 + n2,把此等式化解得到 n0 = n2 + 1。

4、具有n個結點的完全二叉樹的深度爲(log2^n) + 1,這裏的小括號表示取下限運算。

推導如下:完全二叉樹的葉子結點只能出現在最下兩層,則知根節點到倒數第二層應該爲滿二叉樹,則結點的個數爲2^(k - 1) - 1。這樣2^(k - 1) - 1<n <= z^k - 1(這裏面的k爲二叉樹的深度)。上面的等式整理下2^(k - 1)<=n < z^k 。通過推得k = (log2^n) + 1,這裏的小括號表示取下限運算。

5、如果對一顆有n個結點的完全二叉樹的結點按層序編號,對任一結點i(1<=i<=n)有以下性質:
-如果i = 1,則結點i是二叉樹的根,無雙親;如果i > 1,則其雙親結點是(i/2)這裏的小括號表示取下限運算。
-如果2i>n,則結點i無左孩子(結點i爲葉子結點);否則其左孩子是結點2i。
-如果2i + 1>n,則結點i無右孩子;否則其右孩子是結點2i + 1。


特殊二叉樹:

1、斜樹-表示二叉樹的結點樹等於層數。

2、滿二叉樹-深度爲h,且含有2^h - 1個結點的二叉樹。即所有分支節點都存在左子樹和右子樹,並且所有葉子都在同一層上,這樣的二叉樹稱爲滿二叉樹。

滿二叉樹的特點:
-葉子只能出現在最下一層
-非葉子結點的度一定是2
-在同樣深度的二叉樹中,滿二叉樹的結點個數一定最多,同時葉子也最多
3、完全二叉樹:對一顆具有n個結點的二叉樹按層序編號,如果編號爲i的結點與同樣深度的滿二叉樹中編號爲i的結點位置完全相同,則這顆二叉樹稱爲完全二叉樹。

完全二叉樹的特點:
-葉子結點只能出現在最下兩層。
-最下層的葉子結點一定集中在左部連續位置。
-倒數第二層,若有葉子結點,一定都在右部連續位置。
-如果結點度爲。則該結點只有左孩子。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章