BTNode *CreatBT(char *post,char *in,int n,int m)
{
BTNode *s;
char *p,*q,*maxp;
int maxpost,maxin ,k;
if(n<=0) return NULL;
maxpost=-1;
for(p=in;p<in+n;p++)
for(q=post;q<post+m;q++)
if(*p==*q)
{
k=q-post;
if(k>maxpost)
{
maxpost=k;
maxp=p;
maxin=p-in;
}
}
s=(BTNode *)malloc(sizeof(BTNode));
s->data=post[maxpost];
s->lchild=CreatBT(post,in,maxin,m);
s->rchild=CreatBT(post,maxp+1,n-maxin-1,m);
return s;
}
CreatBT
最新推荐文章于 2023-03-13 21:14:13 发布