| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3190 人关注过本帖
标题:一个建立二叉树的程序
只看楼主 加入收藏
求研
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-15
收藏
 问题点数:0 回复次数:4 
一个建立二叉树的程序

以下是我编的一个建立二叉树的程序:
我是一个C语言初学者,以下是我编的二叉树建立程序:
#include"stdio.h"
#include"malloc.h"
#define MAXSIZE 100
#define MAXNODE 15

typedef struct BiTNode{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

int Initiate(BiTree bt);
BiTree Creat(BiTree s[]);

void main()
{
int i;
BiTree array[MAXNODE],p;
p=Creat(array);
}

int Initiate(BiTree bt)
{
BiTree q;
if((bt=(BiTNode *)malloc(sizeof(BiTNode)))==NULL)
return 0;
bt->lchild=NULL;
bt->rchild=NULL;
return 1;
}

BiTree Creat(BiTree s[])
{
int i,n=MAXNODE;
for(i=1;i<n;i++)
Initiate(s[i]);
for(i=1;i<n/2;i++)
{
s[i]->lchild=s[2*i];
if((2*i)<n)
s[i]->rchild=s[2*i+1];
else s[i]->rchild=NULL;
}
return s[1];
}

编译,连接时都没错,但是一执行就要发送错误报告。我编的程序老是出现这种问题,急煞俺也!请各位高手,高手中的高手们指正。

搜索更多相关主题的帖子: 二叉树 
2007-08-15 16:56
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 

这个我也觉得很奇怪,难道又是typedef的问题,哪位解决下?

在编译器中,明显这段有问题:
for(i=1;i<n/2;i++)
{
s[i]->lchild=s[2*i];
if((2*i)<n)
s[i]->rchild=s[2*i+1];
else s[i]->rchild=NULL;
}


偶学编程,也许本身就是一个错。。。
2007-08-15 21:37
limeng_HOHO
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:49
专家分:50
注 册:2007-7-16
收藏
得分:0 
void main()
{
int i;
BiTree array[MAXNODE],p;
for(i=0;i<MAXNODE;i++)
array[i]=(BiTNode *)malloc(sizeof(BiTNode));
p=Creat(array);
}

array[MAXNODE]没有分配内存空间
加上那两行后就好了

世界并不美丽 然而又因此而美丽
2007-08-15 23:07
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
在函数Initiate中不是已经分配了吗???

偶学编程,也许本身就是一个错。。。
2007-08-15 23:48
求研
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-15
收藏
得分:0 
谢谢各位
2007-08-16 12:05
快速回复:一个建立二叉树的程序
数据加载中...
 
   



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

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