3WA 2RE
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdio>
#include <algorithm>
#include <stack>
using namespace std;
struct node{
char value;
int lchild,rchild;
}data[101];
char hou[101],in[101];
int cnt = 0;
int create(int hL,int hR,int iL,int iR,int bt){
if(hL > hR || iL > iR) bt = 0;
else{
cnt++; bt = cnt;
int m;
for(int i = iL;i <= iR;i++){
if(hou[hR] == in[i]){
m = i; break;
}
}
data[bt].value = in[m];
int len = m - iL;
data[bt].rchild = create(hL+len, hR-1, len+1, iR,bt);
data[bt].lchild = create(hL,hL+len-1, iL,len-1,bt);
}
return bt;
}
void pre(int bt){
if(bt){
cout << data[bt].value;
pre(data[bt].lchild);
pre(data[bt].rchild);
}
}
int main(){
cin >> hou >> in;
int n = strlen(hou);
swap(hou,in);
int root = create(0,n-1,0,n-1,0);
for(int i=0;i<=n;i++){
cout << data[i].value << data[i].lchild << data[i].rchild << endl;
}
pre(root);
return 0;
}
求dalao找false