标题:求解 用遍历算法计算二叉树的叶子结点个数 高手请进 重谢
只看楼主
紫色的自由
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2011-6-8
结帖率:50%
已结贴  问题点数:20 回复次数:3 
求解 用遍历算法计算二叉树的叶子结点个数 高手请进 重谢
好纠结啊
          很多东西没搞懂
                        求高手解释,谢谢了
搜索更多相关主题的帖子: 叶子 二叉树 
2011-06-28 23:48
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
得分:10 
     可以搞个变量初始化为0,引用传递进去,用遍历二叉树的方法遇到左右孩子都没有的就加1 ,遍历完就搞定啦!
      上面的实现应该比较简单。这个也可以试试:
    int Traverse(BiTree T)
    {
        if(T)
        {
            if(T->lchild==NULL&&T->rchild==NULL)
                return 1;
            return Traverse(T->lchild)+Traverse(T->rchild);
        }
        else
            return 0;
    }
2011-06-28 23:59
h_mastuade
Rank: 2
等 级:论坛游民
帖 子:21
专家分:86
注 册:2011-6-28
得分:10 
void CountLeaf(Bitree T)
{
    if(T){
        if(!T->lchild&&!T->rchild)count++;  //这里可以设一个全局变量,也可以给这函数加一个参数,自己改一点就可以了,蛮简单的
        CountLeaf(T->lchild);
        CountLeaf(T->rchild);
    }
}
2011-06-29 00:01
紫色的自由
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2011-6-8
得分:0 
谢谢
2011-06-29 07:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344284-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.100023 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved