m0_62138486 2022-11-07 21:07 采纳率: 98.6%
浏览 38
已结题

我的代码没有任何输出,哪里有问题

7-2 重构二叉树
分数 10
作者 李廷元
单位 中国民用航空飞行学院
给出两个字符串,分别表示二叉树的先序遍历(根、左子树、右子树)和中序遍历(左子树、根、右子树)的结果。

例如,对于下面的二叉树,先序遍历结果是DBACEGF,中序遍历结果是ABCDEFG。

binary_tree.jpg

假定二叉树的每个节点都用大写的字母标识,且对于同一棵二叉树,同一个字母不会用两次。现在请你根据给出的先序遍历和中序遍历,重构这棵二叉树。
输入格式:
输入包含一个或多个测试用例。每个测试用例一行,给出两个字符串,表示对二叉树进行先序遍历和中序遍历的结果。这两个字符串都是由大写字母组成(因此它们的长度不超过26)。

输出格式:
将每个测试用例转化为一棵二叉树,并在一行中输出树的后序遍历(左子树、右子树、根)的结果。

输入样例:
DBACEGF ABCDEFG
BCAD CBAD
输出样例:
ACBFGED
CDAB
代码长度限制
16 KB
时间限制
1000 ms
内存限制

我的代码

#include <stdio.h>
#include <malloc.h>
#include <string.h>

typedef int ElemType;
typedef struct BiTreeNode
{
ElemType data;
struct BiTreeNode *lchild,*rchild;
}BiTreeNode,*BiTree;

BiTree PreInOrder (char preord[ ],char inord[ ],int i,int j,int k,int h);
void show(BiTree bt);

int main()
{
BiTree t;
int i,j,k,h,n,q;
char preord[26],inord[26];
scanf("%d",&n);
for(int q=1;q<=n;i++)
{
gets(preord);
gets(inord);
j=strlen(preord);
h=strlen(inord);
t=PreInOrder(preord,inord,i,j,k,h);
show(t);
}

}
BiTree PreInOrder (char preord[], char inord[], int i , int j , int k , int h)
{
BiTree t;
int m ;
t=(BiTreeNode *)malloc(sizeof(BiTreeNode));
t-> data = preord[i] ;
m= k ;
while ( inord[m] != preord[i] ) m++ ;
if(m == k ) t-> lchild =NULL ;
else
t-> lchild =PreInOrder ( preord , inord , i+1 , i+m-k , k , m-1 );
if( m == h ) t -> rchild = NULL ;
else
t->rchild =PreInOrder (preord ,inord ,i+m-k+1,j ,m+1 , h);
return t;
}
void show(BiTree t)
{
if(t)
{
show(t->lchild);
show(t->rchild);
printf("%c",t->data);
}
}

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-11-07 21:23
    关注

    这个i变量也没有赋值啊,怎么函数里就直接用了呢?还有k从哪来的值啊
    for(int q=1;q<=n;i++) 这不是死循环吗?q值也没动啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么