永发信息网

帮忙调试程序?

答案:1  悬赏:60  手机版
解决时间 2021-05-01 09:00

程序调试了很长时间,没有错误,但是没办法运行,题目是创建二叉树,前序遍历,求叶子节点数,树深度。输入时以先序遍历序列输入,没有用空格表示。谢谢了。

#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree T;
char ch;
int CreatBiTree(BiTree *T)
{
scanf("%c",&ch);
if(ch==' ') T=NULL;
else
{ if(!(T=(BiTree)malloc(sizeof(BiTNode)))) return 0;
(*T)->data=ch;
CreatBiTree(&((*T)->lchild));
CreatBiTree(&((*T)->rchild));
}
return 1;
}
void PreOrder(BiTree T)
{
if(T!=NULL)
{
printf("%c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void CountLeaf(BiTree T, int *count)
{
if(T!=NULL)
{ if((!T->lchild) && (!T->rchild)) count++;
CountLeaf(T->lchild,count);
CountLeaf(T->rchild,count);
}
}
int TreeDepth(BiTree T)
{
int depth,depthLeft,depthRight;
if(!T) depth=0;
else
{ depthLeft=TreeDepth(T->lchild);
depthRight=TreeDepth(T->rchild);
depth=1+(depthLeft>depthRight?depthLeft:depthRight);
}
return depth;
}
void main()
{
int count,depth;
int k,l;
printf("以前序遍历的形式输入二叉树:\n");
if(CreatBiTree(&T)) printf("创建成功.\n");
else printf("创建失败.\n");
do
{
printf("执行1前序遍历,2求叶子节点个数,3求深度\n");
scanf("%d",&k);
switch(k)
{
case 1: printf("前序遍历二叉树:\n");
PreOrder(T); break;
case 2: CountLeaf(T, &count); break;
case 3: depth=TreeDepth(T);
}
printf("是否继续执行操作 1是,2否.\n");
scanf("%d",&l);
}while(1);

}

最佳答案
if(!(*T=(BiTree)malloc(sizeof(BiTNode)))) return 0;

改成这样可以编译过去

不过你这个输入方式很奇怪
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
寻仙里面体力不足怎么办
你们喜欢刘惜君的理由是?
怎莫能升到10级
元旦的节目出什么好,是晚会哦
超难理解有涵养的句子,收集好句子,要有涵养
我是1986年十月初五,子时的,占卜自己的另一半
放弃自己的爱 可以吗?
义务兵退伍费拿多少……?
《网站》求助
炫舞华北二区聘
三年前,男追女,女拒绝,三年后,女追男,男
离别的诗句古诗
关于《是美男啊》里所有的插曲的歌名!
我所在的厂没有给我们员工办理社保卡,我们该
在那里下载电影速度快啊
推荐资讯
身份证和户口本被陌生人拿到了。他们可以拿去
请问QQ华夏18级任务在那做怎么早不到呢
快递运费可以到付吗,支付宝寄快递可以到付吗?
商丘 新乡 信阳的品牌饰品批发市场在什么地方
兔子怎么吃好吃
红警3 有些章节动画播不出来是怎么回事?
有没有什么电视剧是说明间传说的?
冬天秋天来了写一句话,描写秋天的著名的古诗
网络游戏哪个最火!!!
天热了 为什么还要开暖气?
我的飞信为什么在自己电脑上登不上
我怀孕快四个月了为什么这几天老是半夜就醒来
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?