二叉樹先序遍歷、中序遍歷、後序遍歷
#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 注意每個節點的左右子樹必須遍歷完...