ACM题目————已知前序和中序求后序

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;
char qianxu[30],  zhongxu[30];

void Print_(char* qian, char* zhong, int len){
    char ch = *qian;//根节点
    if( len == 0 ) return ;
    int i=0;
    for(; i<len; i++ ){
        if( zhong[i] == *qian )
            break ;
    } 
    Print_(qian+1, zhong, i);//左子树
    Print_(qian+i+1, zhong+i+1, len-(i+1) ) ;//右子树 
    printf("%c",ch);
}

int main(){
    while(~scanf("%s%s",qianxu,zhongxu) ){
        Print_(qianxu, zhongxu, strlen(qianxu));
        printf("\n");
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/Asimple/p/5581840.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值