#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
//char mid[100], endd[100];
string mid, endd;
typedef struct Node{
char date;
Node* lchild;
Node* rchild;
}node,*Bnode;
void preout(Bnode root)
{
if(root)
{
cout<<root->date;
preout(root->lchild);
preout(root->rchild);
}
}
node* creatree(int mid1, int mid2, int end1, int end2)
{
node* root = (node* )malloc(sizeof(node));
if(!root) exit(0);
root->date = endd[end2];
int present = 0;
for(int i = mid1; i <= mid2; i++)
{
if(mid[i] == endd[end2])
present = i;
}
if(present == mid1)
root->lchild = NULL;
else if(present > mid1)
root->lchild = creatree(mid1, present - 1, end1, end1 + present - mid1 - 1);
if(present == mid2)
root->rchild = NULL;
else if(present < mid2)
{
root->rchild = creatree(present + 1, mid2,end2 + present - mid2,end2 - 1);
}
return root;
}
int main()
{
// memset(mid,0,sizeof(0));
// memset(endd,0,sizeof(0));
getline(cin,mid);
getline(cin,endd);
node* root = (node* )malloc(sizeof(node));
root = creatree(0,mid.size() - 1,0,endd.size() - 1);
preout(root);
cout<<endl;
}
我把测试点下下来跑了能过然而落谷wa是为什么,求助