POJ原址:POJ2255
原则上来说,这道题根本就不算是自己做的,因为基本跟抄没区别,可是我又根本什么不懂,也就只能这么依葫芦画瓢,画的一模一样了。
倒是抄都还能有不少抄错,真是没救了。
Anyway,水题至此已经遍历一遍咯,其中还有的不明白以后再说吧 ~fighting, baby~
参考链接:
POJ2255Tree Recovery(二叉树) - 追梦赤子心 - 博客频道 - CSDN.NET
程序:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char preord[27],inord[27];
int n;
void make_tree(int left,int right)
{
int k;
if(left>right)
return;
for(k=left;k<=right;k++)
{
if(preord[n]==inord[k])
break;
}
n++;
make_tree(left,k-1);
make_tree(k+1,right);
cout<<inord[k];
}
int main()
{
while(cin>>preord>>inord)
{
n=0;
int len=strlen(preord)-1;
make_tree(0,len);
cout<<endl;
}
return 0;
}