87 求先序排列

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;
}
posted @ 2020-05-12 20:18  RabbitJwr  阅读(132)  评论(0编辑  收藏  举报