#include<stdio.h>
#include<string.h>
void zhuanhuan(char X[],char Y[])
{
int i,p,q,l,n,j,k,t;
char m,in1[100],in2[100],per1[100],per2[100];
l=strlen(Y);
if(l==0)
return;
if(l==1)
{
printf("%c",Y[0]);
return;
}
for(n=0;X[n]!='\0';n++)
{
if(X[n]==Y[0])
{
m=Y[0];
p=n;
break;
}
}
for(i=0;i<p;i++)
{
in1[i]=X[i];
}
in1[i+1]='\0';
t=0;
for(j=p+1;X[j]!='\0';j++)
{
in2[t++]=X[j];
}
in2[t]='\0';
t=0;
for(j=1;j<p+1;j++)
{
per1[t++]=Y[j];
}
per1[t]='\0';
t=0;
for(k=p+1;Y[k]!='\0';k++)
{
per2[t++]=Y[k];
}
per2[t]='\0';
if(l!=0)
zhuanhuan(in1,per1);
if(l!=0)
zhuanhuan(in2,per2);
printf("%c",m);
}
void main(void)
{
char X[100],Y[100];
printf("in-order:");
gets(X);
printf("per-order:");
gets(Y);
printf("post-order:");
zhuanhuan(X,Y);
printf("\n");
}
[此贴子已经被作者于2007-7-8 20:01:17编辑过]