标题:请问各位高手,我的程序出了什么问题?
只看楼主
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
 问题点数:0 回复次数:12 
请问各位高手,我的程序出了什么问题?
#include "stdio.h"
#include "stdlib.h"

//----树的二叉树(孩子-兄弟)存储表示------
typedef struct CSNode
{  
    char data;
    struct CSNode *firstchild, *nextsibling;
}CSNode, *CSTree;


int bi_forest(CSTree *p)
{
    char ch;

    scanf("%c",&ch);

    if (ch == '#')
    {
        (*p) = NULL;
    }                                               //如果二叉树是空的,则将相应的森林也设为空
    else
    {
        if (!(( * p) = (CSNode * ) malloc (100 * sizeof(CSTree))))
        {
            exit(0);
        }
        (*p)->data = ch;
        bi_forest(&(*p)->firstchild);
        bi_forest(&(*p)->nextsibling);
    }

    return 0;
}

//求孩子兄弟链表表示的树T的深度
int GetDepth_CSTree(CSTree T, int maxd, int d)
{
    CSTree p;

//    printf("%d\n",maxd);

    if (T = NULL)
    {
    //    printf("%d\n",maxd);
        return 1;
    }                                   //空树
    else
    {
        if (!(p = (CSNode * ) malloc (100 * sizeof(CSTree))))
        {
            exit(0);
        }
        for (p = T->firstchild; p; p = p->nextsibling)
        {
            if ((d += GetDepth_CSTree(p, maxd, d)) > maxd)
            {
                maxd += d;
            }
            return maxd + 1;           //子树的最大深度
        }
    }
    return 0;
}


int main()
{

    freopen("1.txt","r",stdin);
    CSTree T;
    int maxd = 0;
    int d = 0;
    int count = 0;

    bi_forest(&T);
    count += GetDepth_CSTree(T, maxd, d);
    printf("%d\n",count);

    return 0;
}
搜索更多相关主题的帖子: include 二叉树 森林 
2008-11-29 22:37
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
2008-11-29 22:46
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
nobody?
2008-11-29 23:07
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
得分:0 
哎 尽量帮你看下
你等着
2008-11-29 23:10
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
回复 第4楼 dillon 的帖子
谢谢
2008-11-29 23:13
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
2008-11-29 23:33
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
得分:0 
能力有限 不能理解LZint GetDepth_CSTree(CSTree T, int maxd, int d)函数。
2008-11-29 23:46
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
得分:0 
而且LZ在int bi_forest(CSTree *p)函数时就一进入死循环
2008-11-29 23:47
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
回复 第8楼 dillon 的帖子
对啊!!很奇怪,不知道怎么回事!?我调试了很久都不行!
我想应该是创建孩子-兄弟链表用bi_forest(CSTree *p)有问题!
请问有谁能编出创建孩子-兄弟链表的存储函数
2008-11-29 23:56
huangch
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:62
专家分:0
注 册:2008-7-21
得分:0 
2008-11-30 13:53



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




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

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