关于数据结构(C语言版)“二叉树”的问题

这是我周三上机的实验题目,求高手啊,详细程序等等,实验过了马上给分!二叉树采用链式存储结构,要求:(1)求出二叉树的叶子结点个数(2)求二叉树的深度(3)判断二叉树是否为... 这是我周三上机的实验题目,求高手啊,详细程序等等,实验过了马上给分!
二叉树采用链式存储结构,要求:(1)求出二叉树的叶子结点个数(2)求二叉树的深度(3)判断二叉树是否为完全二叉树
展开
 我来答
匿名用户
2014-01-07
展开全部
tyepdef struct Node
{
char data;
Node *lchild;
Node *rchild;
};
int count_leaf_num(Node* root)
{
int i=0,a,b;
if(root==NULL)return;
if(root->lchild==NULL && root->rchild==NULL)return(i++);
if(root->lchild!=NULL)a=count_leaf_num(root->lchild);
if(root->rchild!=NULL)b=count_leaf_num(root->rchild);
return a+b;
}
int count_heiight(Node* root)
{
int l_h=0,r_h=0;
if(root->lchild!=NULL)l_h=1+count_height(root->lchild);
if(root->rchild!=NULL)r_h=1+count_height(root->rlchild);
if(root->lchild==NULL && root->rchild==NULL)return 0;
return l_h>r_h?l_h:r_h;
}
int is_complete_tree(Node *root)
{
int a=1,b=1;
if(root->lchild==NULL && root->rchild==NULL)return 1;
if(root->lchild==NULL && root->rchild!=NULL)return 0;
if(root->lchild!=NULL && root->rchild==NULL)return 1;
if(root->lchild!=NULL)a=is_complete_tree(root->lchild);
if(root->rchild!=NULL)b=is_complete_tree(root->rchild);
return a&b;
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
匿名用户
2014-01-07
展开全部
#include"stdio.h"
#include"string.h"
#define NULL 0
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree Create(BiTree T){
char ch;
ch=getchar();
if(ch=='#')
T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(0);
T->data=ch;
T->lchild=Create(T->lchild);
T->rchild=Create(T->rchild); }
return T;
}int sumleaf(BiTree T){
/* 求叶子数 */
if(!T)
return 0;
else if(!(T->lchild)&&!(T->rchild))
return 1;
else
return (sumleaf(T->lchild)+sumleaf(T->rchild));
}
int Depth(BiTree T){
/* 求深度 */
if(!T)
return 0;
else if(!(T->lchild)&&!(T->rchild))
return 1;
else
return 1+(Depth(T->lchild)>Depth(T->rchild)?Depth(T->lchild):Depth(T->rchild));
} main(){
int countSum=0;
BiTree T;
T=Create(T); countSum=sumleaf(T);
printf("The Sumleaf is:%d\n",countSum); countSum=Depth(T);
printf("The Depth is:%d\n",countSum); } 第三问,我今天事情太多了,有些累,改日,一定补上,你要是着急,请追问。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式