| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:另一个树的问题,头疼啊.
只看楼主 加入收藏
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
快速回复:另一个树的问题,头疼啊.
数据加载中...
 
   



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

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