题目
题目描述:
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 )。
输入格式:
共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
输出格式:
共一行一个字符串,表示一棵二叉树的先序。
数据范围与说明:
【题目来源】
NOIP 2001 普及组第三题
输入输出样例 #1
输入:
输出:
题意
简述:
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 )。
代码
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include<bits/stdc++.h> using namespace std; string a,b; void func(string x,string y){ if(x.size()>0){ char ch=y[y.size()-1]; cout<<ch; int k=x.find(ch); func(x.substr(0,k),y.substr(0,k)); func(x.substr(k+1),y.substr(k,x.size()-k-1)); }
} int main(){ cin>>a; cin>>b; func(a,b); return 0; }
|