Tree Recovery UVA - 536

    xiaoxiao2021-03-25  86

    题目只是要求输出后序遍历,这样就省事多了。无需建树,用数组来表示每个节点的字母,递归输出后序遍历即可。

    /************************************************************************* > File Name: Tree Recovery UVA - 536 > Author: Mrhanice > Mail: 690697134@qq.com > Created Time: 20170312 > link : https://vjudge.net/problem/UVA-536 ************************************************************************/ #include <cstdio> #include <cstring> using namespace std; const int maxn=30; char in_order[maxn],post_order[maxn],pre_order[maxn]; void post_trva(char *pre, char *in ,int length) { if(length<=0) return ; char x = *pre; int i=0; for(;i<length;i++) { if(in[i]==x) break; } post_trva(pre+1,in,i); post_trva(pre+i+1,in+i+1,length-i-1); printf("%c",x); } int main() { while(scanf("%s",pre_order)!=EOF) { scanf("%s",in_order); int len=strlen(pre_order); post_trva(pre_order,in_order,len); printf("\n"); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-35255.html

    最新回复(0)