怎么用C语言写求一棵二叉树的叶子结点个数
答案:3 悬赏:20 手机版
解决时间 2021-03-29 08:40
- 提问者网友:杀手的诗
- 2021-03-28 22:27
怎么用C语言写求一棵二叉树的叶子结点个数
最佳答案
- 五星知识达人网友:怙棘
- 2021-03-29 00:05
int LeaveCount(BiTree T)
{
int i=0;if(T->leftchild)
{i++;
i+=LeaveCount(BiTree T->leftchild);}if(T->rightchild)
{i++;
i+=LeaveCount(BiTree T->rightchild);}
return i;
}
{
int i=0;if(T->leftchild)
{i++;
i+=LeaveCount(BiTree T->leftchild);}if(T->rightchild)
{i++;
i+=LeaveCount(BiTree T->rightchild);}
return i;
}
全部回答
- 1楼网友:罪歌
- 2021-03-29 01:23
//=====采用后序遍历求二叉树的深度、结点数及叶子数的递归算法========
int TreeDepth(BinTree T)
{
int hl,hr,max;
if(T){
hl=TreeDepth(T->lchild); //求左深度
hr=TreeDepth(T->rchild); //求右深度
max=hl>hr? hl:hr; //取左右深度的最大值
NodeNum=NodeNum+1; //求结点数
if(hl==0&&hr==0) leaf=leaf+1; //若左右深度为0,即为叶子。
return(max+1);
}
else return(0);
}
int TreeDepth(BinTree T)
{
int hl,hr,max;
if(T){
hl=TreeDepth(T->lchild); //求左深度
hr=TreeDepth(T->rchild); //求右深度
max=hl>hr? hl:hr; //取左右深度的最大值
NodeNum=NodeNum+1; //求结点数
if(hl==0&&hr==0) leaf=leaf+1; //若左右深度为0,即为叶子。
return(max+1);
}
else return(0);
}
- 2楼网友:孤独的牧羊人
- 2021-03-29 00:50
只写函数,root是根节点
int LeafCount(node root)
{
int i;
if(root)
{
i = !((root->lChild ? 1:0) | (root->rChild? 1:0));
return i + LeafCount(root->lChild) + LeafCount(root->rChild);
}
return 0;
}
int LeafCount(node root)
{
int i;
if(root)
{
i = !((root->lChild ? 1:0) | (root->rChild? 1:0));
return i + LeafCount(root->lChild) + LeafCount(root->rChild);
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯