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

2021-08-14 04:05:26 字數 1627 閱讀 3940

二叉樹(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。

資料結構 9 樹 三 ( 二叉樹儲存結構 )

之前已經談過了樹的儲存結構,並且說到順序儲存對樹這一種一對多的關係的結構實現起來比較困難。但是二叉樹是一種特殊的樹,由於它的特殊性,使得用順序儲存結構也可以實現。二叉樹的順序儲存結構就是用一維陣列儲存二叉樹中的結點,並且結點的儲存位置,也就是陣列的下標,要能體現結點之間的邏輯關係,如雙親與孩子的關係...

資料結構 樹(三) 二叉查詢樹

二叉查詢樹的性質 例子二叉查詢樹 bst 是一種特殊的二叉樹,又稱為排序二叉樹 二叉搜尋樹 二叉排序樹。二叉查詢樹實際是一棵資料域有序的二叉樹。二叉查詢樹的遞迴定義如下 要麼二叉查詢樹是一棵空樹。要麼二叉查詢樹由根結點 左子樹 右子樹組成,其中左子樹和右子樹都是二叉查詢樹,且左子樹上所有結點的資料域...

資料結構 二叉樹(三)二叉樹的深度

給定一棵二叉樹,求該二叉樹的深度 二叉樹深度定義 從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的節點個數為樹的深度 1.1輸入第一行是乙個整數n,表示二叉樹的結點個數。二叉樹結點編號從1到n,根結點為1,n 10 接下來有n行,依次對應二叉樹的n個節點。每行有兩個整數,分...