樹的概念
1.家族樹
在現實生活中,有入如下血統關係的家族可用樹形圖表示:
張源有三個孩子張明、張亮和張麗;
張明有兩個孩子張林和張維;
張亮有三個孩子張平、張華和張群;
張平有兩個孩子張晶和張磊。
以上表示很像一棵倒畫的樹。其中"樹根"是張源,樹的"分支點"是張明、張亮和張平,該家族的其餘成員均是"樹葉",而樹枝(即圖中的線段)則描述了家族成員之間的關係。顯然,以張源為根的樹是乙個大家庭。它可以分成張明、張亮和張麗為根的三個小家庭;每個小家庭又都是乙個樹形結構。
2.樹的定義
樹的遞迴定義:
樹(tree)是n(n≥0)個結點的有限集t,t為空時稱為空樹,否則它滿足如下兩個條件:
(1)有且僅有乙個特定的稱為根(root)的結點;
(2)其餘的結點可分為m(m≥0)個互不相交的子集tl,t
2,…,t
m,其中每個子集本身又是一棵樹,並稱其為根的
子樹(subree)。
注意:樹的遞迴定義刻畫了樹的固有特性:一棵非空樹是由若干棵子樹構成的,而子樹又可由若干棵更小的子樹構成。
4.樹結構的基本術語
(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)棵互不相交的樹的集合。
樹和森林的概念相近。刪去一棵樹的根,就得到乙個森林;反之,加上乙個結點作樹根,森林就變為一棵樹。
5.樹形結構的邏輯特徵
樹形結構的邏輯特徵可用樹中結點之間的父子關係來描述:
(1) 樹中任一結點都可以有零個或多個直接後繼(即孩子)結點,但至多只能有乙個直接前趨(即雙親)結點。
(2) 樹中只有根結點無前趨,它是開始結點;葉結點無後繼,它們是終端結點。
(3) 祖先與子孫的關係是對父子關係的延拓,它定義了樹中結點之間的縱向次序。
(4) 有序樹中,同一組兄弟結點從左到右有長幼之分。
對這一關係加以延拓,規定若k1和k2是兄弟,且k1在k2的左邊,則kl的任一子孫都在k2的任一子孫的左邊,那麼就定義了樹中結點之間的橫向次序。
資料結構 樹
1 定義 樹是一種非線性結構,是一種一對多的資料結構。分析樹的結構,我們用遞迴的方法,根結點下面又可以看做是子樹。2 樹的儲存結構 我們一般用孩子兄弟法儲存。也就是把乙個結點的左邊第乙個孩子放在此結點的左邊孩子,把此結點的右兄弟放在此結點的右邊孩子。這樣就產生了二叉樹。二叉樹和樹可以相互對應。3 二...
資料結構 樹
二叉樹性質回顧 滿二叉樹 完全二叉樹等 給定一棵二叉樹,要求分層遍歷該二叉樹,即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。我們在遍歷的過程中將該層節點的孩子節點壓入乙個佇列,這樣就可以實現從上到下一層一層地遍歷該二叉樹。層序遍歷 並分層列印 如果不用分層的話只用佇列...
資料結構 樹
1.樹結構 資料結構中的樹是是對自然界中樹的形象的模仿,如圖1所示 圖1 樹結構的抽象 自然界中的樹和資料結構中的樹都是由乙個根引出,樹是一種分層系統中的非線性結構。2.樹的術語 圖2 樹的示意圖 1 結點 如圖2所示,a i這些圓圈就是結點,它是樹的基本構成單位。結點中的內容是資料項和指向其他結點...