問題描述
給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度<=8)。
輸入格式
兩行,每行乙個字串,分別表示中序和後序排列
輸出格式
乙個字串,表示所求先序排列
樣例輸入
badc
bdca
樣例輸出
abcd
演算法思想:我們先去尋找這棵樹的根,即後序排列的最後乙個元素,然後在中序排列中找到它,此時在中序排列中,其左邊就是左子樹,右邊就是右子樹,分別記錄下左子樹和右子樹的元素個數,就能同時在後序排列中找到左右子樹的分布區間,對子樹繼續遞迴重複以上過程即可,**如下。
#include
#include
#include
#include
#include
using namespace std;
char mid[10];
char hou[10];
int len;
void seek(int first,int last,int mfir,int mlast)
{if(first>last||mfir>mlast)
return ;
char ch=hou[last];
cout<
二叉樹的中序後序排列求先序 先序中序排列求後序
本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。在一行中輸出preorder 以及該樹的先序遍歷結果。數字間有1個空...
已知先序和中序求後序或中序和後序求先序
首先介紹樹的三種遍歷方式的遍歷順序 先序遍歷 根 左子樹 右子樹 特點 第乙個元素為根 中序遍歷 左子樹 根 右子樹 特點 根的兩邊分別為左子樹和右子樹 後序遍歷 左子樹 右子樹 根 特點 最後乙個元素為根 有如下圖的二叉樹 其先序 中序 後序遍歷分別為 dbacegf abcdefg acbfge...
求先序排列(二叉樹已知中序和後序,求先序)
時間限制 1 sec 記憶體限制 125 mb 提交 90 解決 73 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 每個測試檔案只包含一組測試資料,每組輸入包含兩行,第一行輸入乙個字串表示二叉樹的中序排列,第二行輸入乙個字串表示二叉樹的後序排列。對於每...