m0_62138486 2022-10-31 18:43 采纳率: 98.6%
浏览 5
已结题

显示答案错误,哪里有问题?

求解答,解答就采纳,感谢

img


#include<stdio.h>
#include<stdlib.h>

typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTreeNode, *BiTree;

BiTree CreateBiTree(char str[100]);
void show(BiTree bt);

int main()
{
BiTree bt;
char str[100];
gets(str);
CreateBiTree(str);
show(bt);
return 0;
}
BiTree CreateBiTree(char str[])
{
BiTree bt;
static int i=0;
char c=str[i++];
if(c=='#') bt=NULL;
else
{
bt=(BiTree)malloc(sizeof(BiTreeNode));
bt->data=c;
bt->lchild=CreateBiTree(str);
bt->rchild=CreateBiTree(str);
}
return bt;
}
void show(BiTree bt)
{
if(bt)
{
show(bt->lchild);
printf("%c",bt->data);
show(bt->rchild);
}
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-31 18:54
    关注

    else里你要把bt连到之前的节点上啊,你这孤零零new了个bt出来,然后没有任何节点在子节点是bt,你不是白new了吗

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

报告相同问题?

问题事件

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