搜索
查看: 305|回复: 0
打印 上一主题 下一主题

请教大神

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-29 11:27:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这样一道题:
给出一颗二叉树的先序和中序遍历,求后序遍历。
代码有误,望修改
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int alen,blen;
char a[110],b[110];
int k[110];
char ss[110];
int L;
void dfs(int la,int lb,int ra,int rb)
{
        if(la>ra) return ;
    int ta=k[a[la]]-lb;
    dfs(la+1,la+ta,lb,k[a[la]]-1);
    int tb=rb-k[a[la]]+1;
    dfs(la+ta+1,tb,k[a[la]]+1,rb);
    ss[++L]=a[la];
}
int main()
{
        scanf("%s",a+1); alen=strlen(a+1);
        scanf("%s",b+1); blen=strlen(b+1);
        for(int i=1;i<=alen;i++) k[b[i]]=i;
        L=0;
        dfs(1,alen,1,blen);
        for(int i=1;i<=L;i++) printf("%c",ss[i]);
        printf("\n");
        return 0;
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表