TOJ3988-Password(已知二叉树前中序求后序)

题意:已知二叉树前中序求后序

代码:

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iomanip>

using namespace std;
const int maxn=110;
typedef long long ll;

char ans[maxn];
int t;

void solve(string s1,string s2)
{
  if(s1.length()==0) return;
  if(s1.length()==1)
  {
    ans[t++]=s1[0];
    return ;
  }

  int tt=s2.find(s1[0]);
  solve(s1.substr(1,tt),s2.substr(0,tt));
  solve(s1.substr(tt+1,s1.length()-tt-1),s2.substr(tt+1,s2.length()-tt-1));
  ans[t++]=s1[0];

}
int main()
{
  string s1,s2;
  while(cin>>s1>>s2)
  {
    t=0;
    int len=s1.length();
    solve(s1,s2);
    ans[len]='';
    cout<<ans<<endl;
  }
  system("pause");
  return 0;
}
原文地址:https://www.cnblogs.com/sweetlittlebaby/p/14318590.html