C語言資料結構之樹與森林詳細解析

2021-09-26 23:36:45 字數 1316 閱讀 5309

1.雙親表示法即採用一組連續的空間表示,其中根結點的雙親用-1表示。

2.雙親表示法的儲存結構

#define max_tree_size 50			//樹中最多的結點數

typedef structptnode;

typedef structptree;

這種儲存結構可以快速找到雙親的結點,但是在求結點的孩子時,需要遍歷整個樹形結構。

以二叉鍊錶作為樹的儲存結構,每個結點包括3部分內容——結點值、指向結點第乙個孩子結點的指標和指向下乙個兄弟節點的指標。

樹轉換二叉樹的規則:每個結點左指標指向它的第乙個孩子結點,右指標指向它在樹中相鄰的兄弟結點,可表示為「左孩子,右兄弟」,由於根結點沒有兄弟,所以樹轉換而得的二叉樹沒有右子樹。

樹->二叉樹(之前有問題,現已修正)

將森林轉化為二叉樹的規則與樹類似,先將森林中的每一棵樹都轉化為二叉樹,再將第一棵樹的根作為轉換後的二叉樹的根,第一棵樹的左子樹作為轉換後二叉樹根的左子樹,第二棵樹作為轉換後二叉樹的右子樹,第三棵樹作為轉換後二叉樹根的右子樹的右子樹。以此類推,就可以將森林轉化為二叉樹

二叉樹->森林

一、樹的遍歷:

1.先根遍歷:相對應為樹的先序遍歷

2.後根遍歷:相對應為樹的中序遍歷

二、森林的遍歷

1.先序遍歷森林

1)訪問森林中第一棵樹的根結點

2)先序遍歷第一棵樹中的根節點的子樹森林

3)先序遍歷除第一課子樹之後剩餘的樹構成森林。

2.中序遍歷森林

1)中序遍歷森林中第一棵樹的根結點的子樹森林

2)訪問第一棵樹的根結點

3)中序遍歷除去第一棵樹之後剩餘的樹構成的森林

資料結構與演算法 樹和森林

樹的儲存結構 1.雙親表示法 結點結構 typedef struct ptnodeptnode 樹結構 define max tree size 100 typedef struct ptree 2.孩子鍊錶 找孩子容易,找雙親難 孩子結點結構 typedef struct ctnode child...

《資料結構》期末提綱之樹與森林(側重原理)

停更了三天,補番去了 頹廢 森林是n棵互不相交的樹。由於雙親儲存與孩子鍊錶儲存的樹的有關操作與圖的有關操作類似,樹的孩子兄弟儲存有關操作與二叉樹類似,樹的層序遍歷本質為bfs,此處僅提供雙親儲存與孩子鍊錶表示法的型別 template class t struct tree node templat...

資料結構 樹與森林 雙親表示法

以一組連續空間儲存結點,各結點附設指示器指示其雙親結點的位置 資料域加雙親下標域 首先是輔助巨集 define ok 1 define error 0 define true 1 define false 0 define overflow 1 define underflow 2 define n...