簡介
樹形結構是一類非常重要的非線性結構,它可以很好地描述客觀世界中廣泛存在的具有分支關係或層次特性的物件,因此在計算機領域裡有著廣泛應用,如作業系統中的檔案管理、編譯程式中的語法結構和資料庫系統資訊組織形式等。
一、樹的基本表示形式
樹的遞迴定義:
樹(tree)是n(n≥0)個結點的有限集t,t為空時稱為空樹,否則它滿足如下兩個條件:
(1)有且僅有乙個特定的稱為
根(root)的結點(當n=0也是一棵樹,上圖(a));
(2)其餘的結點可分為m(m≥0)個互不相交的子集tl,t2,…,tm,其中每個子集本身又是一棵樹,並稱其為根的
子樹(subree)。
注意:樹的遞迴定義刻畫了樹的固有特性:一棵非空樹是由若干棵子樹構成的,而子樹又可由若干棵更小的子樹構成。
三、 .樹結構的基本術語
(1)結點的度
(degree)
樹中的乙個結點擁有的子樹數稱為該
結點的度
(degree)。(即該結點下一層的結點數)
一棵樹的度是指該樹中結點的最大度數。
度為零的結點稱為
葉子(leaf)或終端結點。
度不為零的結點稱分支結點或非終端結點。
除根結點之外的分支結點統稱為內部結點。
根結點又稱為開始結點。
(2)孩子(child)和雙親(parents)
樹中某個結點的子樹之根稱為該結點的孩子(child)或兒子,相應地,該結點稱為孩子的雙親(parents)或父親。
同乙個雙親的孩子稱為兄弟(sibling)。
(3)祖先(ancestor)和子孫(descendant)
①路徑(path)
若樹中存在乙個結點序列k1,k2,…,ki,使得ki是ki+1的雙親(1≤il到kj的一條路徑(path)或道路。
路徑的長度
指路徑所經過的邊(即連線兩個結點的線段)的數目,等於j-1。
注意:若乙個結點序列是路徑,則在樹的樹形圖表示中,該結點序列"自上而下"地通過路徑上的每條邊。
從樹的根結點到樹中其餘結點均存在一條惟一的路徑。
②祖先(ancestor)和子孫(descendant)
若樹中結點k到ks存在一條路徑,則稱k是ks的祖先(ancestor),ks是k的子孫(descendant)。
乙個結點的祖先是從根結點到該結點路徑上所經過的所有結點,而乙個結點的子孫則是以該結點為根的子樹中的所有結點。
約定:結點k的祖先和子孫不包含結點k本身。
(4)結點的層數
(level)和樹的
深度(height)
結點的層數
(level)從根起算:
根的層數為1
其餘結點的層數等於其雙親結點的層數加1。
雙親在同一層的結點互為堂兄弟。
樹中結點的最大層數稱為樹的高度(height)或深度(depth)。
注意,很多文獻中將樹根的層數定義為0。
(5)有序樹
(orderedtree)和
無序樹(unoderedtree)
若將樹中每個結點的各子樹看成是從左到右有次序的(即不能互換),則稱該樹為有序樹(orderedtree);否則稱為無序樹(unoderedtree)。
注意:若不特別指明,一般討論的樹都是有序樹。
(6)森林(forest)
森林(forest)是m(m≥0)棵互不相交的樹的集合。
樹和森林的概念相近。刪去一棵樹的根,就得到乙個森林;反之,加上乙個結點作樹根,森林就變為一棵樹。
四、.樹的其他表示:
① 巢狀集合表示法
② 凹入表表示法
③ 廣義表表示法
樹的基礎概念
樹的定義 樹 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為根的結點 當n 1時,除根結點之外的其餘結點被分成m m 0 個互不相交的有限集合t1,t2,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。葉子結點 度為0的結點,也稱為終端結...
樹的有關概念
樹 n n 0 個結點構成的有限集合 空樹 n 0時,樹稱為空樹 樹的根 沒有父親節點但是有左右兒子的結點 邊的數目 一顆n個結點的樹有n 1條邊 結點的度 結點的子樹個數 樹的度 樹種所有結點中最大的度數 葉節點 度為0的結點 父節點 有子樹的結點是其子樹的跟結點的父結點 子結點 若a結點是b結點...
樹1 樹的基本概念
注 本文所用的術語定義均來自國外大學和計算機文獻使用的定義,非國內教材。層次編號從1開始 樹 generic tree 樹是含有n個結點的有限集,結點 node 通過邊 edge 連線起來,形成樹狀的 非線性結構。當 n 0時,為空樹。當 n 0時,僅有乙個特殊的結點叫做根 root 的結點,它位於...