题目描述
小虎的《数据结构》老师留了一项作业:要求写出所画二叉树的层次遍历序列、先序遍历序列、中序遍历序列和后序遍历序列。聪明的小虎很快就写出了层次遍历序列和中序遍历序列。这时,中国国足战胜韩国的捷报传来,激动不已的小虎克制不住自己的情绪欢呼了一场。欢呼过后,小虎发现作业题不见了,他现在只记着二叉树的层次遍历序列和中序遍历序列。你能帮小虎写出先序遍历序列和后序遍历序列吗?
二叉树的节点用从“A”开始的大写字母表示,节点数最大不超过26。
输入
输入数据包含N(1≤N≤20)个测试样例。
每个测试样例包含两行,分别为层次遍历序列和中序遍历序列。
输出
对于每组测试样例,输出数据包含两行,分别为先序遍历序列和后序遍历序列。
样例输入
2
CBA
BCA
BACDE
DAEBC
样例输出
CBA
BAC
BADEC
DEACB
参考代码
#include<stdio.h>
#include<string.h>
char a[100],b[100];
int k;
void print1(int n)
{
if(n>k)return; else
{
print1(2*n);
print1(2*n+1);
printf("%c",a[n]);
}
}
void print2(int n)
{
if(n>k)return; else
{
printf("%c",a[n]);
print2(2*n);
print2(2*n+1);
}
}
int main()
{
int n,i;
scanf("%d",&n);
while(n--)
{
scanf("%sn%s",a,b);
k=strlen(a);
for (i=k;i>=1;i--)
a[i]=a[i-1];
print2(1);
printf("n");
print1(1);
printf("n");
}
return 0;
}
解析
暂无