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

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

2014-02-17 21:12 316 查看
数据结构上机测试4.1:二叉树的遍历与应用1

Time Limit: 1000MS Memory limit: 65536K

题目描述

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

输入

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

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

输出

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

示例输入

ABDCEF
BDAECF


示例输出

DBEFCA
#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct node
{
char data;
struct node *lchild,*rchild;
};
void Bian(struct node *p)
{
if(p->lchild!=NULL)
Bian(p->lchild);
if(p->rchild!=NULL)
Bian(p->rchild);
printf("%c",p->data);
}     //输出后序遍历序列

struct node*buildtree(struct node *p,char *pre,char*mid,int n)

{
if(n<=0)
return NULL;
p=(struct node*)malloc(sizeof(struct node));
p->data=pre[0];    //让头指针指向根
int q=strchr(mid,pre[0])-mid;    //求出左子树的长度
p->lchild=buildtree(p->lchild,pre+1,mid,q);
p->rchild=buildtree(p->rchild,pre+q+1,mid+q+1,n-q-1);
return p;
}//根据先序和中序建树
int main()
{
char pre[1001],mid[1001];
gets(pre);
gets(mid);
int n=strlen(pre);
struct node *root;
root=buildtree(root,pre,mid,n);
Bian(root);
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: