資料結構筆記 樹

2021-09-29 13:26:16 字數 3324 閱讀 2239

一、樹的定義樹:n

(n≥0

)個結點的有限集合。

當n=0時,稱為空樹;

任意一棵非空樹滿足以下條件: ⑴

有且僅有乙個特定的稱為

根的結點; ⑵

當n>1

時,除根結點之外的其餘結點被分成m(

m>0)個

互不相交

的有限集合t1

,t2,

…,tm

,其中每個集合又是一棵樹,並稱為這個根結點的子樹。

樹的定義是採用遞迴方法。

二、樹的基本術語

結點的度:結點所擁有的子樹的個數。

樹的度:樹中各結點度的最大值。

葉子節點:度為0的結點,也成為終端節點。

分支節點:度不為0的結點,也成為非終端節點。

孩子、雙親:書中某結點子樹的根結點成為這個結點的孩子結點,這個結點成為它孩子結點的雙親結點。

兄弟:具有同乙個雙親的孩子結點互稱為兄弟。

路徑:如果樹的結點序列n

1,n

2, …, nk有如下關係:結點nin

i+1的雙親(1<=in

1,n

2, …,nk稱為一條由n

1n

k的路徑;路徑上經過的邊的個數稱為路徑長度

祖先、子孫:在樹中,如果有一條路徑從結點x到結點y,那麼x就稱為y的祖先,而y稱為x的子孫。

結點所在層數:根結點的層數為

1;對其餘任何結點,若某結點在第

k層,則其孩子結點在第

k+1層。

樹的深度:

樹中所有結點的最大層數,也稱高度。

層序編號:將樹中結點按照從上層到下層、同層從左到右的次序依次給他們編以從1開始的連續自然數。

有序樹、無序樹:如果一棵樹中的結點的格仔數從左到右是有次序的,稱這棵樹為有序樹;反之,成為無序樹。

資料結構中討論的一般是有序樹。

森林:m(m>0)棵互不相交的樹的集合。

三、樹的遍歷操作

樹的遍歷:從根

結點出發,按照某種

次序訪問

樹中所有結點,使得每個結點被訪問一次且僅被訪問一次。

1. 前序遍歷

樹的前序遍歷操作定義為:

(1) 訪問根節點;

(2) 按照從左到右的順序前序遍歷根節點的每一棵子樹。

前序遍歷序列:a b d e h i f c g

2. 後序遍歷

樹的後續遍歷操作定義為:

若樹為空,則遍歷結束;否則:

(1) 按照從左到右的順序後序遍歷根節點的每一棵子樹;

(2) 訪問根節點。

後序遍歷序列:d h i e f b g c a

3. 層序遍歷

樹的層序遍歷操作定義為:

從樹的第一層(即根節點)開始,自上而下逐層遍歷,在同一層中,按從左到右的順序對結點逐個訪問。

層序遍歷序列:a b c d e f g h i

一、雙親表示法

基本思想:

用一維陣列來儲存樹的各個結點(一般按

層序儲存),

陣列中的乙個元素對應樹中的

乙個結點,

每個結點記錄兩類資訊:結點的資料資訊以及該結點的雙親在陣列中的下標。

data:

儲存樹中結點的資料資訊

parent:

儲存該結點的雙親在陣列中的下標

template struct pnode;
二、孩子表示法——多重鍊錶表示法

確定鍊錶的結構:鍊錶中的每個節點包括乙個資料域和多個指標域,每個指標域指向該結點的乙個孩子結點。

方案一:指標域的個數等於樹的度

其中:data:資料域,存放該節點的資料資訊;

child1~childd:指標域,指向該結點的孩子。

缺點:浪費空間。

方案二:指標域的個數等於該結點的度

其中:data:資料域,存放該結點的資料資訊;

degree:度域,存放該結點的度;

child1~childd:指標域,指向該結點的孩子。

缺點:結點結構不一致

三、孩子表示法——孩子鍊錶表示法

特點:將每個結點的所有孩子放在一起,構成線性表。

基本思想:

把每個結點的孩子排列起來,看成是乙個線性表,且以單鏈表儲存,則n個結點共有n個孩子鍊錶。

這 n

個單鏈表共有

n 個頭指標,

這 n

個頭指標又組成了乙個線性表。

為了便於進行查詢

採用順序儲存儲存每個鍊錶的頭指標。

最後,將存放

n 個頭指標的陣列和存放

n個結點的陣列結合起來,構成孩子鍊錶的

表頭陣列。

孩子結點:

資料結構筆記 樹

2017.12.22 1.順序查詢 a 建立哨兵 2.二分法查詢 binary search a 有序連續儲存在陣列 b 邊界錯位 if left right 查詢失敗 c 時間複雜度logn 1.判定樹上每個結點需要查詢次數剛好為該結點所在層數 2.查詢成功時查詢次數不會超過判定樹的深度 3.as...

資料結構筆記(樹)

經過線性表 包括幾種特殊的線性表 的學習,對資料的儲存和處理已經有了初步認識,關於樹的邏輯結構學習有總結如下 一 樹的定義 採用遞迴方法 樹 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 1 有且僅有乙個特定的稱為根的結點 2 當n 1時,除根結點之外的其餘結點被分...

資料結構筆記8 樹

樹的定義 在樹中通常將資料元素成為結點。樹 n n 0 個結點的有限集合。當n 0時,稱為空樹。任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為根的結點 當n 1時,除根結點之外的其餘結點被分成m m 0 個互不相交的有限集合t1,t2,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。樹的基...