題目描述
樹和二叉樹基本上都有先序、中序、后序、按層遍歷等遍歷順序, 給定中序和其它一種 遍歷的序列就可以確定一棵二叉樹的結構。 假定一棵二叉樹一個結點用一個字符描述,現在給出中序和按層遍歷的字符串,求該樹 的先序遍歷字符串。
輸入格式
輸入共兩行,每行是由字母組成的字符串(一行的每個字符都是唯一的), 分別表示二叉樹的中序遍歷和按層遍歷的序列。
輸出格式
輸出就一行,表示二叉樹的先序序列。
樣例輸入
DBEAC ABCDE
樣例輸出
ABDEC
#include <bits/stdc++.h>
using namespace std;
string z, c;
void yjc(int a1, int b1, int a2, int b2) {int i, j, _6_;for (i = a2; i <= b2; i++) {_6_ = 0;for (j = a1; j <= b1; j++) {if (c[i] == z[j]) {printf("%c", c[i]);_6_ = 1;break;}}if (_6_) break;}if (j > a1) yjc(a1, j - 1, 0, b2);if (j < b1) yjc(j + 1, b1, 0, b2);
}
int main() {cin >> z >> c;yjc(0, z.size() - 1, 0, c.size() - 1);return 0;
}