谁能告诉我这是什么问题
代码在这
#include "iostream"
#include "string"
using std::cin;
using std::cout;
using std::endl;
using std::string;
struct Tree
{
char data;
struct Tree* lchild;
struct Tree* rchild;
string str1, str2;
};
string st1, st2;
string sr1, sr2, sr3, sr4;
void dfs(Tree* T, string s1, string s2) {
int size, temp;
if (T == NULL)
return;
size = s1.size();
if (size == 1) {
T->data = s2[0];
T->lchild = NULL;
T->rchild = NULL;
return;
}
temp = T->str1.find(s2[0]);
T->data = s2[0];
Tree* q = (struct Tree*)malloc(sizeof(struct Tree));
Tree* p = (struct Tree*)malloc(sizeof(struct Tree));
q->str1 = s1.substr(0, temp); //中序 前
q->str2 = s2.substr(1, temp); //前序 前
if (q->str2.size() != 0)
{
T->lchild = q;
}
else T->lchild = NULL;
p->str1 = s1.substr(temp + 1, size - temp - 1); //中序 后
p->str2 = s2.substr(temp + 1, size - temp - 1); //前序 后
if (p->str2.size() != 0)
{
T->rchild = p;
}
else T->rchild = NULL;
dfs(T->lchild, q->str1, q->str2);
dfs(T->rchild, p->str1, p->str2);
}
void visit(Tree* T) {
if (T == NULL)
return;
cout << T->data;
}
void preOrder(Tree* T) {
if (T != NULL) {
preOrder(T->lchild);
preOrder(T->rchild);
visit(T);
}
}
int main() {
cin >> st1 >> st2;
Tree *root= (struct Tree*)malloc(sizeof(struct Tree));
root->lchild = NULL;
root->rchild = NULL;
dfs(root, st1, st2);
preOrder(root);
}