題意:多組案例,每組案例給定二叉樹的先序遍歷和中序遍歷,輸出後序遍歷(每組案例不超過26個字元)
案例:sample input
dbacegf abcdefg
bcad cbad
sample ouput
acbfged
cdab
分析:先序遍歷的第乙個字元就是根,因此在中序遍歷中找到它,即可知左右子樹的先序遍歷和中序遍歷。
先執行遞迴遍歷構造二叉樹,再找出後序遍歷即可。
源**:
1 #include 2 #include 3char preorder[30];//前序4
char inorder[30];//中序5
char postorder[30];//後序6
void build(int n, int pre, int
in, int
rec)
715 postorder[n-1+rec] = preorder[pre];//
記錄16 build(i, pre+1, in, rec);//
左子樹17 build(n-i-1, pre+i+1, in+i+1, rec+i);//
右子樹 18}
19int
main()
2029
return0;
30 }
問題 D 二叉樹遍歷
編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此二叉樹以後,再對二叉樹進行中序遍歷,輸出遍歷結果。輸入包括1行字串,長度不超過100。可能有多組測試資料,對於每組資料,...
問題 D 二叉樹遍歷
編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此二叉樹以後,再對二叉樹進行中序遍歷,輸出遍歷結果。輸入包括1行字串,長度不超過100。可能有多組測試資料,對於每組資料,...
問題 D 二叉樹遍歷
編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此二叉樹以後,再對二叉樹進行中序遍歷,輸出遍歷結果。輸入包括1行字串,長度不超過100。可能有多組測試資料,對於每組資料,...