構造二叉樹函式及遍歷,二叉樹遍歷結合例子具體講解例子不能太簡單

2025-02-21 13:45:06 字數 1927 閱讀 1433

1樓:李白韓信杜甫

程式寫多了,以下那些是多餘的,定義函式,你下面並沒有具體程式。

初始化乙個二叉樹,int creatree(btree t);

對二叉樹樹結點的操作函式:

int print(char e);

遍歷二叉樹結點:先序遍歷法。

int preoder(btree t,int(*vist)(char));

遍歷二叉樹結點:中序遍歷法。

int inorder(btree t,int(*vist)(char));

遍歷二叉樹結點:後序遍歷法。

int postorder(btree t,int(*vist)(char));

而且註釋部分是用 /*來實現的,要不然系統認為你的註釋也是程式的部分。

2樓:網友

/初始化乙個二叉樹,int creatree(btree t);

對二叉樹樹結點的操作函式:

int print(char e);

遍歷二叉樹結點:先序遍歷法。

int preoder(btree t,int(*vist)(char));

遍歷二叉樹結點:中序遍歷法。

int inorder(btree t,int(*vist)(char));

遍歷二叉樹結點:後序遍歷法。

int postorder(btree t,int(*vist)(char));

二叉樹遍歷結合例子具體講解例子不能太簡單

3樓:網友

遍歷的方法有:層序遍歷、先序遍歷、中序遍歷、後序遍歷等,以下面的二叉樹為例介紹遍歷。

e/ \b f

a d hc g i\k

j1.層序遍歷。

即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。

例子中層序遍歷為ebfadhcgikj,一層一層從上往下,從左往右輸出。

2.先序遍歷。

遍歷順序是 先根再左子樹再右子樹,訪問根結點的操作發生在遍歷其左右子樹之前。

我們看例子,首先從根節點e開始,先根輸出e,然後左子樹b,此時的位置在b,b相當於ad兩個結點的根,所以遍歷b之後,遍歷b的左子樹a,a沒有孩子結點,所以遍歷b的右子樹d,d有左子樹遍歷c,這樣完成了e的左子樹遍歷,再遍歷e的右子樹f,再遍歷f的左子樹,這裡沒有,就遍歷f的右子樹h,然後再遍歷h的左右子樹,左子樹g,當然g沒有孩子結點,所以接下來是i,然後 k j類似。

所以先序遍歷是ebadcfhgikj,記住一點,訪問根結點的操作發生在遍歷其左右子樹之前,在上面的例子中,訪問完e之後訪問b,接下來不是訪問f,而是訪問b的左右子樹。

3.中序遍歷。

先左子樹再根再右子樹。

a/ \b c

中序遍歷就是 b a c,如果b有左右子樹,如下圖,再訪問b之前先訪問b的左子樹。

a/ \b c

d e中序遍歷為 d b e a c,如果c有右子樹沒有左子樹,如下圖則是先訪問c再訪問f

a/ \b c

d e f最上面提到的例子。

e/ \b f

a d hc g i\k

j中序就是:abcdefghijk,在訪問e的時候,發現e有左子樹b,先b,再訪問b的時候發現有左子樹a,所以肯定還是a先,所以這個序列是從a開始的。

3.後序遍歷。

其訪問順序是先左再右再根,下面的例子,後序就是bca

a/ \b c

如果b有左右子樹,如下圖,先訪問b的左右子樹,再訪問b,其後序是debca

a/ \b c

d e如果c有右子樹沒有左子樹有右子樹,再訪問c時的右子樹f再訪問c,其後序是debfca

a/ \b c

d e f最開始提到的例子。

e/ \b f

a d hc g i\k

j後序是acdbgjkihfe

先序線索二叉樹的遍歷,後序線索二叉樹怎麼畫啊

include include typedef enum pointertag 指標標誌 typedef char datatype typedef struct bithretreebithretree bithretree pre 全域性變數,用於二叉樹的線索化 bithretree creat...

資料結構二叉樹的遍歷,C語言資料結構 二叉樹的遍歷

前序 根,左兒子,右兒子 中序 左兒子,根,右兒子 後序 左兒子,右兒子,根 首先是要牢記一上幾句話 比如這棵樹的中許遍歷,a有左兒子,先不訪問a,以此類推,直到d沒有左兒子,訪問d,然後訪問d的根b,然後應該訪問b的右兒子,但是b沒有,所以訪問b的根a,訪問完a以後訪問a的右子樹。先看c,c有左兒...

某二叉樹的先序遍歷序列是abdgcefh,中序遍歷序列是dg

分析過程 以下面的例題為例進行講解 已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是abdgcefh dgbaechf,求二叉樹及後序遍歷序列。分析 先序遍歷序列的第乙個字元為根結點。對於中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷...