本章簡介
樹形結構是一類重要的非線性結構
樹結構在客觀世界中是大量存在的
樹在計算機領域中也有著廣泛的應用
本章重點討論二叉樹的存儲表示及其各種運算
樹的概念
在現實生活中
張源有三個孩子張明
張明有兩個孩子張林和張維
張亮有三個孩子張平
張平有兩個孩子張晶和張磊
以上表示很像一棵倒畫的樹
樹的遞歸定義
樹(Tree)是n(n≥
(
(
注意
樹的遞歸定義刻畫了樹的固有特性
(
樹形圖表示是樹結構的主要表示方法
樹的樹形圖表示中
用該定義來分析上圖(a)所示的樹
圖中的樹由結點的有限集T={A
T
T
T
T
(
① 嵌套集合表示法
是用集合的包含關系來描述樹結構
上圖(a)樹的嵌套集合表示法如圖(b)
② 凹入表表示法
類似於書的目錄
③ 廣義表表示法
用廣義表的形式表示的
(A(B(E
(
樹中的一個結點擁有的子樹數稱為該結點的度(Degree)
一棵樹的度是指該樹中結點的最大度數
度為零的結點稱為葉子(Leaf)或終端結點
度不為零的結點稱分支結點或非終端結點
除根結點之外的分支結點統稱為內部結點
根結點又稱為開始結點
(
樹中某個結點的子樹之根稱為該結點的孩子(Child)或兒子
同一個雙親的孩子稱為兄弟(Sibling)
(
①路徑(path)
若樹中存在一個結點序列k
路徑的長度指路徑所經過的邊(即連接兩個結點的線段)的數目
注意
若一個結點序列是路徑
從樹的根結點到樹中其余結點均存在一條惟一的路徑
②祖先(Ancestor)和子孫(Descendant)
若樹中結點k到ks存在一條路徑
一個結點的祖先是從根結點到該結點路徑上所經過的所有結點
約定
結點k的祖先和子孫不包含結點k本身
(
結點的層數(Level)從根起算
根的層數為
其余結點的層數等於其雙親結點的層數加
雙親在同一層的結點互為堂兄弟
樹中結點的最大層數稱為樹的高度(Height)或深度(Depth)
注意
很多文獻中將樹根的層數定義為
(
若將樹中每個結點的各子樹看成是從左到右有次序的(即不能互換)
注意
若不特別指明
(
森林(Forest)是m(m≥
樹和森林的概念相近
樹形結構的邏輯特征可用樹中結點之間的父子關系來描述
(
(
(
(
對這一關系加以延拓
From:http://tw.wingwit.com/Article/program/sjjg/201311/23584.html