标题:另一个树的问题,头疼啊.
只看楼主
LegendofMine
该用户已被删除
已结贴  问题点数:20 回复次数:7 
另一个树的问题,头疼啊.
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 头疼 
2010-06-03 19:09
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
得分:20 
话不多说,自己看

程序代码:
//计算任一一层的叶子结点数
#include <stdio.h>
#include <malloc.h>
#define maxsize 100
typedef char ElemType;
typedef struct node
{
    ElemType data;
    struct node *lchild,*rchild;
}BiNode,*BiTree;
BiTree CreatBiTree();
int Leaves(BiTree T,int k);
int main()
{
    BiTree T;
    int k,x;
    T=CreatBiTree();
    scanf("%d",&k);
    x=Leaves(T,k);
    printf("The %dth level of tree is %d\n",k,x);
    return 0;
}
BiTree CreatBiTree()
{
    BiTree T;
    ElemType x;
    scanf("%c",&x);
    if(x=='@') T=NULL;
    else
    {
        T=(BiTree)malloc(sizeof(BiNode));
        T->data=x;
        T->lchild=CreatBiTree();
        T->rchild=CreatBiTree();
    }
    return T;
}
int Leaves(BiTree T,int k)
{
    BiTree tree[maxsize];
    int i,front,rear,last,level,leaf;
    tree[1]=T;
    front=1;
    rear=2;
    level=1;
    last=2;
    leaf=0;
    while(level<k)
    {
        if(tree[front]->lchild)
            tree[rear++]=tree[front]->lchild;
        if(tree[front]->rchild)
            tree[rear++]=tree[front]->rchild;
        front++;
        if(front==last) { level++;last=rear; }
    }
    return rear-front;
//    for(i=front;i<rear;i++)
//        if(!tree[i]->lchild&&!tree[i]->rchild) leaf++;
//        return leaf;
}


编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-03 20:25
LegendofMine
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-03 20:57
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
得分:0 
对,把我的注释去掉就可以计算叶子数了(我的样例是@不是#)

abc##de#g##f###
abd##e##cf##g##

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-03 21:09
LegendofMine
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-03 21:29
LegendofMine
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-03 21:30
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
得分:0 
我在 ubuntu g++ 4.3.3中编译运行一点问题都没有

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-03 21:57
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
得分:0 
传上截图:





编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-03 22:04



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




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

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