m0_62138486 2022-11-04 13:49 采纳率: 98.6%
浏览 18
已结题

我的代码数不出任何数,是怎么回事,求解答,必采纳

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

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

binary_tree.jpg

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

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

输入样例:
DBACEGF ABCDEFG
BCAD CBAD
输出样例:
ACBFGED
CDAB

我的代码
#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++)
{
q=1;
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条回答 默认 最新

  • 快乐鹦鹉 2022-11-04 14:15
    关注

    for(int q=1;q<=n;i++)
    {
    q=1;
    这里整个q=1要干啥?不搞死循环了么?q是循环变量啊,你把它写死为1,永远结束不了啦

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

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据