标题:用 递归算法统计二叉树的叶子数目。
取消只看楼主
petronella
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-11
 问题点数:0 回复次数:1 
用 递归算法统计二叉树的叶子数目。
算法我会,可是程序就搞不清楚了。请帮忙。国际

[[it] 本帖最后由 petronella 于 2008-5-12 22:23 编辑 [/it]]
搜索更多相关主题的帖子: 二叉树 递归 算法 叶子 统计 
2008-05-11 15:41
petronella
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-11
得分:0 
是这样的,总也该不对啊,犯愁哦。
#include "stdio.h"
#include"stdlib.h"
typedef char DataType;
typedef struct BiTNode
{
    DataType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree *T)
{
    char ch;
    ch=getchar();
    if(ch==' ')T=NULL;
    else
    {
        if(!(T=(BiTNOde*)malloc(sizeof(BiTNode)))exit(OVERFLOW)
        T->data=ch;
    CreatBiTree(T->lchild);
    CreatBiTree(T->rchild);
    }
}
    void Node(BiTree T)
    {
        int static nodes=0;
        if(T)
        {
            Node(T->lchild);
            nodes++;
            Node(T->rchild);
            nodes++
        }
        return nodes;
    }
    void Leaf(BiTree T)
    {
        int static leaves=0;
        if(T)
        {
            leaf(T->lchild);
            if(!(T->lchild||T->rchild))
            leaves++;
            Leaf(T->rchild);
        }
        return leaves;
    }
void main()
{
    int nodes,leaves,root;
    nodes=0,leaves=0;
    int BiTree root;
    CreatBiTree(&root);
    nodes=Node(root);
    leaves=Leaf(root);
    printf("\n nodes=%d leaves=%d",nodes,leaves);
   
}
2008-05-12 22:19



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




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

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