二叉樹先序遍歷 中序遍歷 後序遍歷

2021-10-02 16:34:18 字數 1034 閱讀 9039

二叉樹先序遍歷、中序遍歷、後序遍歷

#include

#include

typedef

struct bitnodebitnode,

*bitree;

void

visit

(bitnode *c)

/*先序遍歷*/

void

preorder

(bitree t)

}/*中序遍歷*/

void

inorder

(bitree t)

}/*後序遍歷*/

void

postorder

(bitree t)

}void

insertbtree

(bitree &t,

int val)

else

if(val>t->data)

}else

}int

main()

;printf

("\n開始插入資料\n");

for(

int i =

0;i <

8;i++

)printf

("\n二叉樹中全部資料(先序遍歷):");

preorder

(bt)

;printf

("\n");

printf

("\n二叉樹中全部資料(中序遍歷):");

inorder

(bt)

;printf

("\n");

printf

("\n二叉樹中全部資料(後序遍歷):");

postorder

(bt)

;printf

("\n");

return0;

}

先序遍歷:先訪問父節點,再訪問左子節點,最後右子節點

中序遍歷:先訪問左子節點,再訪問父節點,最後是右子節點

後序遍歷:先訪問左子節點,再訪問右子節點,最後是父節點

二叉樹先序遍歷 中序遍歷 後序遍歷

輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...

二叉樹先序遍歷 後序遍歷 中序遍歷

從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...

二叉樹先序遍歷,中序遍歷,後序遍歷,層次遍歷。

原理 如圖 先序遍歷結果為 abdhecfg 首先從根節點開始,然後左節點,左節點成為根節點,然後再左節點,然後右節點 如果左子樹遍歷完後就遍歷該根節點的右子樹 中序遍歷結果為 hdbeafcg 當左節點被讀取後,左節點被當作根節點 後序遍歷結果為 hdebfgca 注意每個節點的左右子樹必須遍歷完...