數據結構考研學習筆記(八)---樹與二叉樹

1.樹的基本概念

1.1 樹的定義

樹是n(n>=0)個節點的有限集。當n=0時,稱爲空樹。在任意一棵非空樹中應滿足:
(1)有且僅有一個特定的稱爲根的結點。
(2)當n>1時,其餘節點可分爲(m>0)個互不相交的有限集T1,T2,…Tm,其中每個集合本身又是一棵樹,並且稱爲根的子樹。
顯然,樹的定義是遞歸的,即在樹的定義中又用到了其自身,樹是一種遞歸的數據結構。樹作爲一種邏輯結構,同時也是一種分層結構,具有以下兩個特點:
(1)樹的根結點沒有前驅,除根結點外的所有結點有且只有一個前驅。
(2)樹中所有結點可以有零個或多個後繼。
樹適合於表示具有層次結構的數據。樹中的某個結點(除根結點外)最多隻和上一層的一個結點(即其父結點)有直接關係,根結點沒有直接上層結點,因此在n個結點的樹中有n-1條邊。而樹中每個結點與其下一層的零個或多個結點(及其子女結點)有直接關係

1.2 基本術語

樹的樹形表示
1)考慮結點K。根A到結點K的唯一路徑上的任意結點,稱爲結點K的祖先。如結點B是結點K的祖先,而結點K是結點B的子孫。路徑上最接近結點K的結點K的結點E稱爲K的雙親,而K爲結點E的孩子。根A是樹中唯一沒有雙親的結點。有相同雙親的結點稱爲兄弟,如結點K和結點L有相同的雙親E,即K和L爲兄弟。
2)樹中一個結點的孩子個數稱爲該結點的度,樹中結點的最大度數稱爲樹的度。如結點B的度爲2,結點D的度爲3,樹的度爲3.
3)度大於0的結點稱爲分支結點(又稱非終端結點);度爲0 (沒有子女結點)的結點稱爲
葉子結點(又稱終端結點)。在分支結點中,每個結點的分支數就是該結點的度。
4)結點的深度、高度和層次。結點的層次從樹根開始定義,根結點爲第1層, 它的子結點爲第2層,以此類雅。雙親在阿一層的結點互爲堂兄弟, 圖5.1 中結點G與E.EH.互爲意兄弟。結點的深度是從根結點開始自頂向下連層累加的。結點的高度是從葉結點開始自底向上逐層累加的。樹的高度(或深度)是樹中結點的最大層數。圖s.1中樹的高度爲4.
5)有序樹和無序樹。樹中結點的各子樹從左到右是有次序的,不能互換,稱該樹爲有序樹,否則稱爲無序樹。假設圖5.1爲有序樹,若將子結點位置互換,則變成一棵不同的樹。
6)路徑和路徑長度。樹中兩個結點之間的路徑是由這兩個結點之間所經過的結點序列構成
的,而路徑長度是路徑上所經過的邊的個數。
注意:由於樹中的分支是有向的,即從雙親指向孩子,所以樹中的路徑是從上向下的,同一雙親的兩個孩子之間不存在路徑。
7)森林。森林是m (m20)棵互不相交的樹的集合。森林的概念與樹的概念十分相近,因
爲只要把樹的根結點刪去就成了森林。反之,只要給m棵獨立的樹加上一個結點,並把
這m棵樹作爲該結點的子樹,則森林就變成了樹。
注意:上述概念無須刻意記憶,根據實例理解即可,考研不大可能直接考查概念,而都是結
合具體的題目考查,做題時,遇到不熟悉的概念可以翻書,練習得多自然就記住了。

1.3 樹的性質

樹具有如下最基本的性質:
1)樹中的結點數等於所有結點的度數加1.
2)度爲m的樹中第1層上至多有m/'個結點(121)。
3)高度爲h的m叉樹至多有(m/- DV(m 1)個結點”。
4)具有n個結點的m又樹的最小高度爲log_(mtm 1)+ 1)1

2 二叉樹的概念

2.1二 叉樹的定義及其主要特性

1.二支樹的定義

二又樹是另一種樹形結構, 其特點是每個結點至多隻有兩棵子樹 (即二叉樹中不存在度大於2的結點)。並且二叉樹的子樹有左右之分,其次序不能任意順倒。
與樹相似,一又樹也以通歸的形式定義。二又樹是n (n>=0)個結點的有限集合:
①或者爲空二又樹,即n=0.
②成者由個根結點 和兩個互不相交的被稱爲根的左子樹和右子樹組成。 左子樹和右子樹又分別是一棵二又樹,
二叉樹是有序樹,若將其左,右子樹顛倒,則成爲另棵不同的二叉樹。 即使樹中結點只有一棵子樹,也要區分它是左子樹還是右子樹。

二叉樹與度爲2的有序樹的區別:
①度爲2的樹至少有3個結點。而二又樹可以爲空。
②度爲2的有序樹的孩子的左右次序是相對於另一孩子而言的。若某個結點只有一個孩子,
則這個孩子就無須區分其左右次序,而二叉樹無論其孩子數是否爲2.均需確定其左右次
字,即二叉樹的結點次序不是相對於另結點而言, 面是確定的 。

2.幾個特殊的二叉樹

1)滿二叉樹。棵高度爲h, 且含有2*-1個結點的二又樹稱爲滿二叉樹,即樹中的每層 都
含有最多的結點。如圖5.3(a)所示。滿二叉樹的葉子結點都集中在一又樹的最下一層。井且除葉子結點之外的每個結點度數均爲2.可以對滿二叉樹按層序編號:約定編號從根結點(根結點編號爲1)起,自上面下,自左向右。這樣,每個結點對應一個編號,對於編號爲1的結點,若有雙親,則其雙親爲i2」,若有左孩子,則左孩子爲2:若有右孩子,則右孩子爲21+ 1.
2)完全二又樹。高度爲h、有n個結點的二又樹,當且僅當其每個結點都與高度爲h的滿二又樹中編號爲1~n的結點一對應時,稱爲完全二又樹
在這裏插入圖片描述
①若i≤Ln2]. 則結點i爲分支結點, 否則爲葉子結點。
②葉子結點只可能在層次最大的兩層上出現。對於最大層次中的葉子結點,都依次排列
在該層最左邊的位置上。
③若有度爲1的結點,則只可能有一個, 且該結點只有左孩子而無右孩子(重要特徵)。
④按層序編號後,一旦出現某結點(編號爲1)爲葉子結點或只有左孩子,則編號大於i
的結點均爲葉子結點。
⑤若n爲奇數,則每個分支結點都有左孩子和右孩子:若n爲偶數,則編號最大的分支
結點(編號爲n2)只有左孩子,沒有右孩子,其餘分支結點左、右孩子都有。
3)二叉排序樹。左子樹上所有結點的關鍵字均小於根結點的關鍵字:右子樹上的所有結點的關鍵子均大於根結點的關鍵字,左子樹和在子樹叉各見一的二叉排字樹,樹的深度之差不超過1.
4)平衡二叉樹。樹上任一結點的左子樹和右子樹的深度之差不超過1.

2.2 二叉樹的存儲結構(後續更新)

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