/**/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct node * BT;
#define N
struct node
{
char str;
BT left;
BT right;
};
BT creat(int len,char mid[],char bac[])
{
int i;
BT root=(BT)malloc(sizeof(struct node));
root->str=bac[len-1];
for(i=0; i<len; i++)
{
if(mid[i]==bac[len-1])
{
break;
}
}
if(i>=len)
root=NULL;
else
{
root->left=creat(i,mid,bac);
root->right=creat(len-1-i,mid+1+i,bac+i);
}
return root;
}
void pre(BT root)
{
if(root)
{
printf("%c",root->str);
pre(root->left);
pre(root->right);
}
}
int main()
{
char bac[55],mid[55];
int len;
BT tree;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s %s",mid,bac);
len=strlen(mid);
tree=creat(len,mid,bac);
pre(tree);
printf("\n");
}
return 0;
}
已知中序和后序,求先序遍历
最新推荐文章于 2024-05-01 19:02:38 发布