問題描述
給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度<=8)。
輸入格式
兩行,每行乙個字串,分別表示中序和後序排列
輸出格式
乙個字串,表示所求先序排列
樣例輸入
badc
bdca
樣例輸出
abcd
解題思路:
後序遍歷的最後一位是根,因此可以在中序遍歷中找到後序遍歷的根,然後遞迴右子樹,左子樹即可
#include#include#include#include#includeusing namespace std;
struct node;
bool vis[26];
void dfs(node *&t,string a,string b)
if(t<0) return ;
t->data=b[t];
vis[b[t]-'a']=true;
dfs(t->rc,a.substr(a.find(b[t])+1,la-a.find(b[t])-1),b.substr(0,t));
dfs(t->lc,a.substr(0,a.find(b[t])),b.substr(0,t));
} else
t=null;
}void visit(node *t)
}int main()
求先序排列
給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8。2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1行,表示一棵二叉樹的先序。badc bdca abcd 就是乙個先中後序遍歷的問題,看 吧,有標註示。include include using...
求先序排列
題目描述 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 16 輸入 每個測試檔案只包含一組測試資料,每組輸入包含兩行,第一行輸入乙個字串表示二叉樹的中序排列,第二行輸入乙個字串表示二叉樹的後序排列。輸出 對於每組輸入資料,輸出二叉樹的先序排列。樣例輸入 ba...
求先序排列
operatorname luogup 1030 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 le 8 8 2 22 行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1 11 行,表示一棵二叉樹的先序。badc bdcaabcd這道題是一道...