資料結構 樹

2021-08-15 12:33:56 字數 1010 閱讀 7405

1、樹的定義:樹(tree)是n(n>=0)個節點的有限集。n= 0 時稱為空樹。在任意一顆非空樹中:(1) 有且僅有乙個特定的稱為根(root)的節點;(2)當n>1時,其餘節點可分為m(m>0)個互不相交的有限集t1、t2、....、tm,其中每乙個集合本身又是一棵樹,並且稱為樹的子樹(subtree)。

2、節點分類:節點擁有的的子樹數稱為節點的度。度為0的稱為終端節點或者葉節點;度不為0的稱為非終端節點或者分支節點。樹的度是樹內節點的度的最大值。

3、節點間關係:節點的子樹的根稱為該節點的孩子, 該節點稱為孩子的雙親。同乙個雙親的孩子之間稱為兄弟。如果將樹中節點的各子樹看成是從左到右是有次序的,不能互換的,則稱該樹為有序樹,否則稱為無序樹。

4、結點的層次:從根開始起根為第一層,根的孩子為第二層,樹中結點最大層次成為樹的深度或高度。如果樹中結點的各子樹看做是有序的不能互換的則稱該樹為有序樹,否則為無序樹。森林是m(m>=0)顆互不相交的樹的集合。

5、線性結構和樹結構對比:線性結構的第乙個元素無前驅,樹結構的根節點無雙親,且唯一。線性表有乙個元素無後繼, 樹節點的葉節點無孩子,但可以有多個,線性結構中間元素乙個前驅乙個後繼, 樹節點乙個雙親多個孩子。

6、樹的儲存結構:

儲存結構:順序儲存、鏈式儲存

問題:用一段連續的儲存空間(陣列)無論如何設計也無法反映樹的邏輯關係。誰是誰的父母?誰是誰的孩子?誰是誰的兄弟?。。。因此,簡單的順序儲存無法表示樹的邏輯關係。

解決辦法:利用順序結構結合鏈式結構的特點!!!

設計思想:雙親表示法、孩子表示法、孩子兄弟表示法。

雙親表示法:以一組連續空間儲存樹的結點,同時每個結點中附設乙個指示器指示其雙親結點在陣列中的位置。特點:找根容易o(1)找孩子難。

資料結構 樹

樹的概念 1.家族樹 在現實生活中,有入如下血統關係的家族可用樹形圖表示 張源有三個孩子張明 張亮和張麗 張明有兩個孩子張林和張維 張亮有三個孩子張平 張華和張群 張平有兩個孩子張晶和張磊。以上表示很像一棵倒畫的樹。其中 樹根 是張源,樹的 分支點 是張明 張亮和張平,該家族的其餘成員均是 樹葉 而...

資料結構 樹

1 定義 樹是一種非線性結構,是一種一對多的資料結構。分析樹的結構,我們用遞迴的方法,根結點下面又可以看做是子樹。2 樹的儲存結構 我們一般用孩子兄弟法儲存。也就是把乙個結點的左邊第乙個孩子放在此結點的左邊孩子,把此結點的右兄弟放在此結點的右邊孩子。這樣就產生了二叉樹。二叉樹和樹可以相互對應。3 二...

資料結構 樹

二叉樹性質回顧 滿二叉樹 完全二叉樹等 給定一棵二叉樹,要求分層遍歷該二叉樹,即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。我們在遍歷的過程中將該層節點的孩子節點壓入乙個佇列,這樣就可以實現從上到下一層一層地遍歷該二叉樹。層序遍歷 並分層列印 如果不用分層的話只用佇列...