1944

//2007-02-24 21:43:25 Accepted 1944 C++ 00:00.00 836K 
#include <iostream>

using namespace std;

//树结点
struct TNode{
    
char data;
    TNode
* lchild;
    TNode
* rchild;
};

//返回root指针
TNode* Create(char *preord,char *inord,int n)
{
    
if(n==0)return NULL;
    TNode
* root=new TNode;
    root
->data=preord[0];
    
char *p=strchr(inord,preord[0]);
    root
->lchild=Create(preord+1,inord,p-inord);
    root
->rchild=Create(p-inord+preord+1,p+1,n-1-(p-inord));
    
return root;
}

void PostTravel(TNode *T)
{
    
if(T==NULL)return;
    PostTravel(T
->lchild);
    PostTravel(T
->rchild);
    putchar(T
->data);
}

void Destory(TNode *T)
{
    
if(T==NULL)return;
    Destory(T
->lchild);
    Destory(T
->rchild);
    delete T;
}

int main()
{
    
char preord[30],inord[30];
    
while(scanf("%s %s",preord,inord)!=EOF){
        TNode 
*T=Create(preord,inord,strlen(preord));
        PostTravel(T);
        putchar(
'/n');
        Destory(T);
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值