二叉樹——特點、性質、存儲結構

一、二叉樹的定義

折半查找引出。

1、二叉樹的特點

1)每個結點最多有兩棵子樹

2)左子樹和右子樹是有順序的,不能顛倒次序

3)即使樹中只有一棵子樹,也要區分是左子樹 還是右子樹

二叉樹有5種形態:

空二叉樹、只有一個根結點、根結點只有左子樹、根結點只有右子樹、根結點有左子樹和右子樹

2、特殊二叉樹

1)斜樹:

     所有結點都只有左子樹——左斜樹

     所有結點都只有右子樹——右斜樹

2)滿二叉樹

所有分支都存在左子樹和右子樹,所有葉子都存在同一層上。

       葉子只能出現在最下面一層,達到平衡。

       非葉子的度一定爲2.

       同樣深度的二叉樹,滿二叉樹的結點最多,葉子最多。

3)完全二叉樹

具有n個結點的二叉樹,按層編號,若編號i的結點與同樣深度的的滿二叉樹中編號爲i的結點在二叉樹中位置完全相同,則這棵二叉樹稱爲完全二叉樹。

特點:

葉子結點只會出現在最下兩層;

最下層的葉子結點集中在左部連續區域;

倒數第二層有葉子結點,集中在右部連續區域;

若結點度爲1,則只有左孩子;

同樣結點的二叉樹,完全二叉樹的深度最小?!

二、二叉樹的性質

1、第 i  層上至多有2^(i-1)個結點。(i>=1)

2、深度爲 k  的二叉樹至多有 2^k - 1個結點(k>=1)

3、若(度爲0)終端結點數爲n0,度爲2的結點數爲n2,則n0=n2+1

4、具有n個結點的完全二叉樹的深度爲[log2n]+1(不大於log2n的最大整數,向下取整的意思)

5、對一棵有n個結點的完全二叉樹(深度爲[log2n]+1),按層編號,每層從左往右,對任意結點 i :

     若i=1,結點i爲二叉樹的跟;若i>1,其雙親爲 [ i/2 ](取整)

    若2i>n,則結點i無左孩子,否則左孩子爲2i

    若2i+1>n,則結點無右孩子,否則右孩子爲 2i+1

三、二叉樹的存儲結構

1、順序存儲

用一維數組存儲二叉樹中的結點,數組的下標表示結點標號。

順序存儲一般只適用於完全二叉樹。

 

2、鏈式存儲

每個結點最多有2個孩子,所以爲他設計一個數據域和兩個指針域。——二叉鏈表

lchild | data | rchild

 

(若增加雙親指針,則爲三叉鏈表)

 

 

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