[关闭]
@lunar 2016-03-15T03:30:05.000000Z 字数 501 阅读 1333

HiHo一下 Week10 后序遍历

HiHo


输入

每个测试点(输入文件)有且仅有一组测试数据。

每组测试数据的第一行为一个由大写英文字母组成的字符串,表示该二叉树的前序遍历的结果。

每组测试数据的第二行为一个由大写英文字母组成的字符串,表示该二叉树的中序遍历的结果。

对于100%的数据,满足二叉树的节点数小于等于26。

输出

对于每组测试数据,输出一个由大写英文字母组成的字符串,表示还原出的二叉树的后序遍历的结果。

样例输入

AB
BA

样例输出

BA

代码

很简单直接上代码

  1. #include<iostream>
  2. #include "string.h"
  3. using namespace std;
  4. char pre[26],in[26];
  5. void p(int l,int r,int i){
  6. if(l==r) cout<<in[l];
  7. else{
  8. int m;
  9. for(int j=l;j<=r;j++)if(pre[i]==in[j])m=j;
  10. if(m>l)p(l,m-1,i+1);
  11. if(m<r)p(m+1,r,i+m-l+1);
  12. cout<<in[m];
  13. }
  14. }
  15. int main(){
  16. cin >>pre>>in;
  17. p(0,strlen(in)-1,0);
  18. return 0;
  19. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注