永发信息网

我的程序怎么不可以啊?要实现二叉树的链式存储,创建,前序遍历,求叶子节点数,求深度

答案:1  悬赏:0  手机版
解决时间 2021-04-23 09:39
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
char ch;
int CreatBiTree(BiTree *T)
{
scanf("%c",&ch);
if(ch==' ') T=NULL;
else
{ if(!(T=(BiTree*)malloc(sizeof(BiTree)))) 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()
{
BiTree T;
int count,depth;
int k;
printf("以前序遍历的形式输入二叉树:\n");
CreatBiTree(&T);
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);
}
}
最佳答案

请问是哪儿错了,编译不通过还是什么?


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
手机不知道手机密码,怎么冲话费?移动的?我
我的回答,收到别人送我礼物?怎么收?
QQ飞车中的南瓜头挂尾是一个小时扣一个吗?
为什么我这张图还无法通过QQ校友
为什么我总是不擅长与人交往
手机设置不到空间密码吗
金城公主是谁统治时期嫁到吐蕃的
彩虹形成的哲理 作文
巜我不是讨厌鬼>>读后感400字
我长得像我妈妈的英文
华乐士多在哪里啊,我有事要去这个地方
炫舞宠物爬塔是什么,炫舞什么宠物爬塔厉害
四氧化三铁与什么反应生成铁写出三条
西安到信阳的火车票多钱
携程火车票怎么选座位,火车票可以选座位么
推荐资讯
运城有康宝莱店铺?
是规定了hope sb.不能加宾语补语的?
给我一个5000到6000元的电脑配置?
蔚县糕馆在什么地方啊,我要过去处理事情
手机GPS,A-GPS功能是什么意思
自己种的免费玫瑰收获以后在哪呀,怎么不见了
未成年人能去银行把港币换成人民币吗?
淘宝卖家已经发货了,能不能更改送货的地址
水培风信子根部腐烂怎么办
高压95低压85 血压差太小怎么办
深圳有哪些好玩的景点,深圳比较好玩的旅游景
擦脂粉进棺材歇后语,空棺材出殡的歇后语是?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?