高手们,我想建一棵树,我已经按书的算法做了,可不知道哪里错了,都困扰我N天了,各位能帮忙看看吗,在下万分感激!!!!
/* Note:Your choice is C IDE */
#include “stdio.h”
struct l
{char e;
struct l *lchild,*rchild;
}l;
main()
{struct l *p=NULL;
void buildtree(struct l *t);
p=p->lchild=p->rchild=(struct l*)malloc(sizeof(struct l));
buildtree(p);
printf(“%c”,p->lchild->e);
}
void buildtree(struct l *t)
{char ch;
scanf(“%c”,&ch);
t=(struct l*)malloc(sizeof(struct l));
if(ch==’#')t=NULL;
else{
t->e=ch;
buildtree(t->lchild);
buildtree(t->rchild);
}
}
>> 本文固定链接: http://www.vcgood.com/archives/1884
>> 转载请注明: yipiantiannick 2007年10月21日 于 C语言帝国 发表
首先告诉你,程序编译不通过是因为少了头文件,在头部加入#include “malloc.h”
就可以了。
程序无法成功,希望你能提供一下你的建树的算法,大家好参考。
哦。。。。
谢谢。。。。。。
我是想用递归函数来构造一棵树,然后输出p->lchild->e(它的第一个左节点)来检验一下树是否建成,
void buildtree(struct l *t)
{char ch;
scanf(“%c”,&ch);
t=(struct l*)malloc(sizeof(struct l));
if(ch==’#')t=NULL;
else{
t->e=ch; //构造节点
buildtree(t->lchild); //构造左子树
buildtree(t->rchild); //构造右子树
书的算法就这个,可是,我实现不了,不知道是函数有问题还是调用有问题,各位帮忙看看好吗,在这里被卡了,以后就很难学了。。。。。。。。。。。。
谢谢!!!