Background
Special for beginners, ^_^
Description
输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
Format
Input
输入共两行。
第一行一个字符串,表示树的先序遍历;
第二行一个字符串,表示树的中序遍历。
树的结点一律用小写字母表示,长度小于 50。
Output
输出仅一行,表示树的后序遍历序列。
Samples
输入数据 1
abdec
dbeac
Copy
输出数据 1
debca
Copy
Limitation
1s, 1024KiB for each test case.
--------------------------------------------------------------------------------------------------------------------------------
分析一下,数据肯定是string类型的。给了先序和中序,求后序,还是用递归。
按照之前讲的方法,对一个节点遍历他的左子树和右子树,最后输出这个节点 。
这题简单,不多说了。
看代码前先来段广告:
此题来自沐枫oj,强烈建议大家去康康。
又到了愉快的代码环节,上代码!
#include<bits/stdc++.h>
using namespace std;
string x,y;
void hou(int a,int b,int c,int d){
if(a>b)return;
int r=y.find(x[a]);
hou(a+1,r-c+a,c,r-1);
hou(r-c+a+1,b,r+1,d);
cout<<x[a];
}
int main(){
cin>>x>>y;
hou(0,x.size()-1,0,y.size()-1);
return 0;
}
作者写文章不易,希望看到这里的帅哥美女们:
关注一下吧~~
不行点个赞也行啊~~
拜托了~~~