POJ2255-Tree Recovery【二叉树遍历】

二叉树遍历
给出前序和中序,求后序

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;

char mid[27];
char pre[27];
int n=-1;
void maketree(int i,int j)
{
    if(i>j) return ;
    n++;
    int k;
    for( k=i; k<=j; k++)
    {
        if(pre[n]==mid[k])
        {
            break;
        }
    }
    maketree(i,k-1);
    maketree(k+1,j);
    printf("%c",mid[k]);
}
int main()
{
    while(~scanf("%s%s",pre,mid))
    {
        maketree(0,strlen(pre)-1);
        printf("\n");
        n=-1;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Li_Hongcheng/article/details/83246334