求后序遍历
运行时限: 10000 ms 单次运行时限: 10000 ms 内存限制: 32 MB
总提交: 0次 通过: 0次
题目描述
输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
程序输入说明
输入文件为tree, in,共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串. 表示树的中序遍历。树的结点一律用小写字母表示。
程序输出说明
输出文件为tree, out,仅一行,表示树的后序遍历序列。
程序输入样例
可见格式 带空格和换行符的格式 带空格和换行符的格式说明
abdec
dbeac
程序输出样例
Original Transformed 带空格和换行符的格式说明
debca
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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;
}
//printf("%d\n",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);
// printf("Hello world!\n");
return 0;
}
网友评论