資料結構 樹

2021-09-26 00:00:43 字數 1315 閱讀 9256

一、定義:n個節點的有限集。當n=0時稱為空樹。在任意一棵非空樹中:

有且僅有乙個特定的節點稱為根(root)的節點。當n>0時根節點是唯一的。

當n>1時,其餘節點可分為m(m>0)個互不相交的有限集t1、t2、t3、.......tm,其中每乙個集合本身又是一棵樹,並且稱為根的子樹。子樹的個數沒有限制,但他們一定是互不相交的。

二、節點分類:樹的節點包含乙個資料元素即若干指向其他子樹的分支

1、度:節點擁有的子樹數量,度為零的節點稱為葉結點(leaf)或終端結點,度不為零的節點稱為分支節或非終端節點。根節點除外的,分支節點也稱為內部節點。數的度是樹內各節點的度的最大值。

2、節點間的關係:節點的子樹的根稱為該節點的孩子(child),相應的,該節點稱為孩子的雙親(parent)。同乙個雙親的孩子之間互稱為兄弟。節點的祖先是從根到該節點所經分支上的所有節點。以某乙個節點為根的子樹中的任意乙個節點都稱為該節點的子孫。

3、節點的層次(level):從根開始定義,根為第一層,根的孩子為第二層。若某節點在第l層則其孩子在l+1層。雙親在同一層的節點互為堂兄弟。樹中節點的最大層次稱為樹的深度或高度。

4、有序樹與無序樹:如果將樹中節點的各個子樹堪稱從左到右是有次序的,不能互換的,則稱為有序樹。反之為無序樹。

5、森林(forest):m(m>=0)棵互不相交的樹的集合。樹的每個節點的子樹的集合即為森林

三、樹和線性表的區別:

線性結構

樹結構第乙個元素

無前驅無雙親,唯一

最後乙個元素

無後繼葉結點:無孩子,可有多個

中間元素

乙個前驅乙個後繼

乙個雙親多個孩子

四、樹的儲存結構:樹的表示法

1、雙親表示法:假設以一組連續空間儲存樹的節點。同時在每個節點中,附設乙個指示器指示其雙親節點到鍊錶中的位置。由於根節點沒有雙親所以將根節點的雙親位置設為-1。

2、孩子表示法:每個節點有多個指標域,每個指標指向一棵子樹的根節點。把每個節點的孩子節點排列起來,以單鏈表作為儲存結構,則n個節點有n個孩子鍊錶,如果時葉子節點則此單鏈表為空。然後n個頭指標有組成乙個線性表,才有順序儲存結構存放進乙個一維陣列中。 我們把這種方法叫做多重鍊錶表示法。由於樹的每個節點的度也就是子樹的數量不同。所以可以設計兩種方案來解決。

每個節點的指標域的個數就等於樹的度,樹的度是樹中每個節點的度的最大值。缺點樹中的各個節點的度相差很大時很浪費空間。

每個節點的指標域的個數等於各個節點的度,我們需要專門去乙個位置來儲存指標域的個數。

3、孩子兄弟表示法:任意一棵樹,它的節點的第乙個孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。因此我們設定兩個指標分別指向該節點的第乙個孩子和此節點的兄弟。

資料結構 樹

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

資料結構 樹

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

資料結構 樹

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