@lunar
2016-03-14T19:30:05.000000Z
字数 501
阅读 1586
HiHo
每个测试点(输入文件)有且仅有一组测试数据。
每组测试数据的第一行为一个由大写英文字母组成的字符串,表示该二叉树的前序遍历的结果。
每组测试数据的第二行为一个由大写英文字母组成的字符串,表示该二叉树的中序遍历的结果。
对于100%的数据,满足二叉树的节点数小于等于26。
对于每组测试数据,输出一个由大写英文字母组成的字符串,表示还原出的二叉树的后序遍历的结果。
AB
BA
BA
很简单直接上代码
#include<iostream>#include "string.h"using namespace std;char pre[26],in[26];void p(int l,int r,int i){if(l==r) cout<<in[l];else{int m;for(int j=l;j<=r;j++)if(pre[i]==in[j])m=j;if(m>l)p(l,m-1,i+1);if(m<r)p(m+1,r,i+m-l+1);cout<<in[m];}}int main(){cin >>pre>>in;p(0,strlen(in)-1,0);return 0;}
