您的位置:首页 > 理论基础 > 数据结构算法

数据结构上机测试4.1:二叉树的遍历与应用1

2017-02-21 19:13 351 查看
Problem Description

输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。

Input

第一行输入二叉树的先序遍历序列;

第二行输入二叉树的中序遍历序列。

Output

输出该二叉树的后序遍历序列。

Example Input

ABDCEF

BDAECF

Example Output

DBEFCA

先序遍历的第一个为根节点,再在中序遍历中找到根节点的位置,根节点左边为左子树,右边为右子树,之后在左右子树重复之前的操作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
char date;
struct node *l,*r;
}tree;
tree *creat(int len,char s[60],char h[60])
{
int i;
tree *t;
if(len<=0)
return NULL;
t=(tree *)malloc(sizeof(tree));
t->date=s[0];
for(i=0;i<len;i++)
{
if(h[i]==s[0])
break;
}
t->l=creat(i,s+1,h);
t->r=creat(len-i-1,s+i+1,h+i+1);
return t;
}
void show(tree *root)
{
if(root)
{
show(root->l);
show(root->r);
printf("%c",root->date );
}
}
int main()
{
tree *root;
char s[60],h[60];
int len;
scanf("%s %s",s,h);
len=strlen(h);
root=creat(len,s,h);
show(root);
printf("\n");
return 0;
}


4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: