C语言:已知二叉树中序遍历和后序遍历,求前序遍历(已有代码求解释)
怒看代码N小时不懂!尤其是函数自身调用的部分。而且此程序输出有问题!小弟跪求大神解释#include<stdio.h>#include<string.h>chara[10...
怒看代码N小时不懂!
尤其是函数自身调用的部分。
而且此程序输出有问题!
小弟跪求大神解释
#include <stdio.h>
#include <string.h>
char a[100], b[100];
int work(int zi, int zj, int hi, int hj)
{
int i, j = hi;
if (zi > zj)
return 0;
printf("%c", b[hj]);
if (zi == zj)
return 0;
else
for (i = zi; i <= zj; i++){
if (a[i] == b[hj])
break;
j= hi + (i - zi) - 1;
work(zi, i - 1, hi, j);
work(i + 1, zj, j + 1, hj - 1);
}
}
int main()
{
scanf_s("%s%s", a, b);
work(0, strlen(a) - 1, 0, strlen(b) - 1);
while (1);
return 0;
} 展开
尤其是函数自身调用的部分。
而且此程序输出有问题!
小弟跪求大神解释
#include <stdio.h>
#include <string.h>
char a[100], b[100];
int work(int zi, int zj, int hi, int hj)
{
int i, j = hi;
if (zi > zj)
return 0;
printf("%c", b[hj]);
if (zi == zj)
return 0;
else
for (i = zi; i <= zj; i++){
if (a[i] == b[hj])
break;
j= hi + (i - zi) - 1;
work(zi, i - 1, hi, j);
work(i + 1, zj, j + 1, hj - 1);
}
}
int main()
{
scanf_s("%s%s", a, b);
work(0, strlen(a) - 1, 0, strlen(b) - 1);
while (1);
return 0;
} 展开
2个回答
展开全部
这个可以根据顺序显示图 随便打顺序就可以出图了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有正确源码,要的话留邮箱
追问
gaogaidizhinai。163.com有解释么?
追答
回去发给你吧,已发送请查收
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询