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

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

 

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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

输入

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

输出

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

示例输入

ABDCEF
BDAECF

示例输出

DBEFCA
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct node
{
    char ch;
    struct node *lch,*rch;
}*A,M;

int find(char st,char a[],int l,int r)
{
    int k=l;
    while(a[k]!=st && k<=r)
        k++;
    return(k);
}

A creat(char pre[],char mid[],int n)
{
    A t;
    int k;
    if(n<=0)
        return NULL;
    else
        {
            k=find(pre[0],mid,0,n);
            t=(A)malloc(sizeof(M));
            t->ch=pre[0];
            t->lch=creat(pre+1,mid,k);
            t->rch=creat(pre+k+1,mid+k+1,n-k-1);
        }
    return(t);
}

void post(A f)
{
    if(f)
    {
        post(f->lch);
        post(f->rch);
        printf("%c",f->ch);
    }
}
int main()
{
    A f;
    char pre[1002],mid[1002];
    scanf("%s%s",pre,mid);
    int len=strlen(pre);
    f=creat(pre,mid,len);
    post(f);
    printf("\n");
    return 0;
}

 

posted @ 2014-11-15 16:49  夏迩  阅读(148)  评论(0)    收藏  举报