你好,请问可以告诉我怎么写用非递归的方法求二叉树中叶子节点的数目怎么写呢?用c语言写

 我来答
yiqiu2324
2012-12-09 · TA获得超过633个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:88.5万
展开全部
呵呵,我才写没多久
/*
算法思想:
利用层次遍历实现,只需加一个条件即可
*/
//实现函数
int LevelLeafNode=0;
void TransLevel(BT *T)
{
BT *NodeQueue[MAXNODE],*p=T;
int i=1,j=1;//分别指向队首和队尾
if(p!=NULL)
NodeQueue[j++]=p;
while(i!=j)
{
p=NodeQueue[i];//队头出队

 if(p->LeftChild==NULL&&p->RightChild==NULL)//统计二叉树叶子结点的总数
++LevelLeafNode;

if(p->LeftChild!=NULL)
NodeQueue[j++]=p->LeftChild;
if(p->RightChild!=NULL)
NodeQueue[j++]=p->RightChild;

++i;//指向队首元素
}
}
木月1
2012-12-09 · 超过11用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:30.6万
展开全部
用for语句嵌套 双层循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式