描述
输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
输入
输入文件为tree.in,共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。
输出
输出文件为tree.out,仅一行,表示树的后序遍历序列。
样例输入
abdec
dbeac
样例输出
debca
#include<bits/stdc++.h>
using namespace std;
typedef struct BTNode
{
char data;
struct BTNode *left,*right;
}BTNode;
void pai(char *xian,char *zhong,int len)
{
if(len == 0)
return;
BTNode *t = (BTNode *)malloc(sizeof(BTNode));
t->data = *xian;
int i;
for(i=0;i<len;i++)
{
if(zhong[i] == *xian)
break;
}
//cout<<i;
pai(xian+1,zhong,i);
pai(xian+i+1,zhong+i+1,len-i-1);
printf("%c",t->data);
}
int main()
{
char xian[1000];
char zhong[1000];
gets(xian);
gets(zhong);
int len = strlen(zhong);
pai(xian,zhong,len);
return 0;
}