2个回答
展开全部
#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));
}
#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));
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询