87 求先序排列
作者: Turbo时间限制: 1S章节: 深度优先搜索
问题描述 :
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。
输入说明 :
两行,每行一个字符串,分别表示中序和后序排列
输出说明 :
一个字符串,表示所求先序排列
输入范例 :
BADC
BDCA
输出范例 :
ABCD
#include <iostream>
#include <string>
using namespace std;
void preOrder(string in, string post)
{
if ((int)in.length() > 0)
{
char c = post[(int)post.size() - 1];
cout << c;
int k = in.find(c);
preOrder(in.substr(0, k), post.substr(0, k));
preOrder((in.substr(k + 1)), post.substr(k, post.size() - k - 1));
}
}
int main()
{
string inOrder, postOrder;//中后
cin >> inOrder >> postOrder;
preOrder(inOrder, postOrder);
return 0;
}