为什么这个C语言程序执行不出结果?

#include<stdio.h>#include<stdlib.h>typedefstructBiTree{intval;/*这里的val相当于结点的值data*/st... #include<stdio.h>
#include<stdlib.h>
typedef struct BiTree
{
int val; /*这里的val相当于结点的值data*/
struct BiTree *lchild,*rchild;
}BiNode,*BiTree;

void CreateBiTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
if(ch==' ')
{
*T=NULL;
}
else
{
*T=(BiTree)malloc(sizeof(BiNode));
if(!*T)
{
exit(0);
}
(*T)->val=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}

depth=0;
h=1;
void TreeDepth(BiTree T,int h)
{
if(T)
{
if(h>depth)
{
depth=h;
TreeDepth(T->lchild,h+1);
TreeDepth(T->rchild,h+1);

}

}
}

void DispBiTree(BiTree T)
{
if(T)
{
printf("%c",T->val);
if(T->lchild!=NULL||T->rchild!=NULL)
{
DispBiTree(T->lchild);
if(T->rchild!=NULL)
{
DispBiTree(T->rchild);
}
}
}
}

int main()
{
BiTree T;
CreateBiTree(&T);
TreeDepth(T,h);
DispBiTree(T);
system("pause");
return 0;
}
展开
 我来答
听不清啊
高粉答主

2020-06-17 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
先把这个程序中明显的两个错误的地方修改了吧?程序中没有声明深度和h两个变量,但是却把对他们的赋值写在了所有函数的外边。如做为作为全局变量声明的话,也只是声明在函数的外边,但是对变量的赋值,应该是在主函数内部。还有球深度的这个函数,并没有返回值,这是不起作用的。
追答
先把这个程序中明显的两个错误的地方修改了吧?程序中没有声明深度和h两个变量,但是却把对他们的赋值写在了所有函数的外边。如做为作为全局变量声明的话,也只是声明在函数的外边,但是对变量的赋值,应该是在主函数内部。还有球深度的这个函数,并没有返回值,这是不起作用的。
追问
好的没问题了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式