1. 程式人生 > >資料結構之樹(三)——二叉樹定義和性質

資料結構之樹(三)——二叉樹定義和性質

二叉樹(Binary Tree)是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根結點和倆棵互不相交的,分別稱為根結點的左子樹和右子樹的二叉樹組成。

如圖:


二叉樹的特點

二叉樹的特點:

1.每個結點最多有倆棵子樹,所以二叉樹中不存在度大於2的結點。

2.左子樹和右子樹是有順序的,次序不能任意顛倒。

3.即使樹中某結點只有一棵子樹,也要區分它是左子樹還是右子樹。

二叉樹具有五種基本形態:

1.空二叉樹;

2.只有一個根結點;

3.根結點只有左子樹;

4.根結點只有右子樹;

5.根結點既有左子樹又有右子樹。

特殊二叉樹

1.斜樹 所有的結點都只有左子樹的二叉樹叫左斜樹。所有結點都是隻有右子樹的二叉樹叫右斜樹。這倆者統稱為斜樹。

2.滿二叉樹 在一棵二叉樹中,如果所有分支結點都存在左子樹和右子樹,並且所有葉子都在同一層,這樣的二叉樹稱為滿二叉樹。
滿二叉樹的特點: (1)葉子只能出現在最一層。 (2)非葉子結點的度一定是2. (3)在同樣深度的二叉樹中,滿二叉樹的結點個數最多,葉子數最多。 3.完全二叉樹 對一棵具有n個結點的二叉樹按層序編號,如果編號為i(1<=i<=n)的結點與同樣深度的滿二叉樹中編號為i的結點在二叉樹中位置完全相同,則這棵二叉樹稱為完全二叉樹。
完全二叉樹的特點: (1)葉子結點只能出現在最下倆層; (2)最下層的葉子一定集中在左部連續位置; (3)倒數二層,若有葉子結點,一定都在右部連續位置; (4)如果結點度為1,則該結點只有左孩子,即不存在只有右子樹的情況; (5)同樣結點數的二叉樹,完全二叉樹的深度最小。

二叉樹的性質

(1)在二叉樹的地i層上至多有2^(i-1)個結點(i>=1)。 (2)深度為k的二叉樹至多有(2^k)-1個結點(k>=1)。 (3)對任何一棵二叉樹T,如果其終端結點數為n0,度為2的結點數為n2,則n0=n2+1。 (4)具有n個結點的完全[logn]+1 ([x]表示不大於x的最大整數)。 (5)如果對一棵有n個結點的完全二叉樹(其深度為[logn]+1)的結點按層序編號(從第1層到第[logn]+1層,每層從左到右),對任一結點i(1<=i<=n)有:         1.如果i=1,則結點i是二叉樹的根,無雙親;如果i>1,則其雙親是結點[i/2]。         2.如果2i>n,則結點i無左孩子(結點i為葉子結點);否則其左孩子是結點2i。         3.如果2i+1>n,則結點i無右孩子;否則其右孩子是結點2i+1。