6.1 樹的定義和基本術語
樹型結構是一種非常重要的非線性資料結構,其中以樹和二叉樹最為常用,直觀來看,樹是以分支關係定義的層次結構。樹在計算機領域得到廣泛應用,如在編譯程式中,可用樹型結構來表示源程式的語法結構。在資料庫系統中,樹型結構也是資訊的重要組織形式之一。
樹是n(n >=0)個結點的有限集。
在任意一棵非空樹中:
1. 有且僅有乙個特定的稱為根(root)的結點;
2. 當n > 1時,其餘結點又可分為m個互不相交的有限集t1,t2……tm,其中每乙個集合本身又是一棵樹,並且稱為根的子樹(subtree)。
如下圖的樹:
上圖中右邊a圖是只有乙個根結點的樹,左邊b圖是具有13個結點的樹其中a是根結點,其餘結點分成3個互不相交的子集t1 = ,t2 = ,t3 = ;這3個子集都是根a的樹,且本身也是一棵樹。
例如t1,其本身也是一棵樹,其根為b,其餘結點分為2個互不相交的子集;t11 = , t12 = ,這兩個都是b的子樹;而t11中e是根,和是互不相交的子集,其本身又是只有乙個根結點的樹。
樹的結構定義是乙個遞迴的定義,即在樹的定義中又用到樹的概念,它道出了樹的固有特性。
樹的其它表現形式,如下圖。
圖a是以巢狀集合(即是一些集合的集體,對於其中的任何兩個集合,或者不相交,或者乙個包含另外乙個)的形式表示的;
圖b是以廣義表的形式表示的,根作為由子樹森林組成的表的名字寫在表的左邊;
圖c用的是凹入表示法(類似書的編目),從每個框的長度來區別層次等級,然後根據高層次等級下面的低層次等級知道這些低層次等級屬於這個高層次等級。
樹結構中的一些基本術語:
樹的結點包含乙個資料元素及其若干指向其子樹的分支。結點擁有的子樹稱為結點的度(degree)。如在圖6.1中b圖,a的度為3,c的度為1,f的度為0,度為0的結點稱為葉子(leaf)或終端結點。
結點的層次從根開始定義起,根為第一層,根的孩子為第二層,依次向下類推,樹中結點的最大層次稱為樹的深度(degree)或高度,圖6.1b中的樹的深度為4.
如果將樹的結點各子樹看成從左到右是有次序的(即不能互換),則稱該樹為有序樹,否則稱為無序樹,在有序中,左邊第乙個子樹的根稱為第乙個孩子,最右邊的稱為最後乙個孩子。
森林是m個互不相交的樹的集合。對樹中每個結點而言,其子樹的集合即為森林。由此,也可以森林和樹遞迴的定義來描述樹。
就邏輯結構而言,任何一棵樹是乙個二元組tree = (root,f):其中root是資料元素,稱作樹的根結點;f是m棵樹的森林,f = (t1,t2,...tm),其中ti = (ri,fi)稱作根root的第i棵子樹,這個定義將有助於得到森林和樹和二叉樹之間轉換的定義。
第6章 樹和二叉樹
為什麼需要樹結構?1.陣列儲存方式的分析 優點 通過下標方式訪問元素,速度快。對於有序陣列,還可使用二分查詢提高檢索速度。缺點 如果要檢索具體某個值,或者插入值 按一定順序 會整體移動,效率較低。2.鏈式儲存方式的分析 缺點 在進行檢索時,效率仍然較低,比如 檢索某個值,需要從頭節點開始遍歷 3.樹...
第5章 樹和二叉樹
1.樹是一類重要的非線性資料結構,樹形結構是以分支關係來定義的層次結構。在客觀世界中樹形結構廣泛存在,並應用於 人類社會的族譜 家譜 行政區域劃分管理 各種社會組織機構 在計算機領域中,用樹表示源程式的語法結構 在作業系統 os 中,檔案系統 目錄等組織結構也是用樹來表示的。本章的主要內容是 樹的邏...
第5章 樹和二叉樹
線性結構的資料元素是一對一的關係。非線性結構 樹形結構和圖狀結構。樹形結構是一對多的非線性結構,資料元素之間既有分支關係,又有層次關係。樹形結構由樹和二叉樹兩種,樹的操作實現比較複雜,但樹可以轉換為二叉樹進行處理。5.1樹 5.1.1樹的定義 樹 tree 是n個相同型別的資料元素的有限集合。樹中的...