#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
typedef struct node
{
char data;
struct node *l,*r;
} Tree;
void Init(Tree *&T,char *a,char *b,int n)
{
int k;
if(n<=0)
{
T = NULL;
return ;
}
for(char *t=a;t<a+n;t++)
{
if(*t==*(b+n-1))
{
k = t-a;
T = new Tree;
T->data = *t;
break;
}
}
Init(T->l,a,b,k);
Init(T->r,a+k+1,b+k,n-k-1);
}
void Disp(Tree *&T)
{
if(T)
{
cout<<T->data;
Disp(T->l);
Disp(T->r);
}
}
int main()
{
Tree *T;
int len;
char zhong[1000];
char hou[1000];
cin>>zhong;
cin>>hou;
len = strlen(hou);
Init(T,zhong,hou,len);
Disp(T);
}
SWUST数据结构--中序及后序遍历确定该二叉树的先序序列
最新推荐文章于 2022-11-24 21:05:14 发布