已知二叉树按照二叉链表的方式存储.编写算法.计算二叉树度为0.度为1.度为2的结点

在线等急... 在线等 急 展开
 我来答
秋天来了仔陈
推荐于2017-12-16 · TA获得超过2145个赞
知道小有建树答主
回答量:843
采纳率:0%
帮助的人:749万
展开全部
#include <stdio.h>//头文件
#include <stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}
BiTNode,*BiTree;//定义结点类型
BiTree CreateBiTree()//创建树
{
char p;BiTree T;
scanf("%c",&p);
if(p==' ')
T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));//为结点开辟空间
T->data=p;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return (T);
}

int Nochild(BiTree T)//叶子结点
{
if(T==NULL)
return(0);
if(T->lchild==NULL&&T->rchild==NULL)
return(1);
return(Nochild(T->lchild)+Nochild(T->rchild));
}
int Onechild(BiTree T)//度为1的
{
int n=0;
if(T==NULL)
return(0);
if((T->lchild==NULL&&T->rchild!=NULL)||(T->lchild!=NULL&&T->rchild==NULL))
n=1;
return(Onechild(T->lchild)+Onechild(T->rchild)+n);
}
int Twochild(BiTree T)//度为2的
{
int n=0;
if(T==NULL)
return(0);
if(T->lchild!=NULL&&T->rchild!=NULL)
n=1;
return( Twochild(T->lchild)+Twochild(T->rchild)+n);
}

void main()//主函数
{
BiTree Ta;
printf("请创建树:\n");
Ta=CreateBiTree();
printf("叶子数为:%d,度为1的数为:%d,度为2的为:%d",Nochild(Ta),Onechild(Ta),Twochild(Ta));
}
754354200
2009-12-14 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
难啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式