首页 > 用户发贴区 > 编程问题提问区 > 高手,我想建树。。。。。。。
2007
10-21

高手,我想建树。。。。。。。

高手们,我想建一棵树,我已经按书的算法做了,可不知道哪里错了,都困扰我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);
 }
}


高手,我想建树。。。。。。。》有 2 条评论

  1. coolker 说:

    首先告诉你,程序编译不通过是因为少了头文件,在头部加入#include “malloc.h”
    就可以了。

    程序无法成功,希望你能提供一下你的建树的算法,大家好参考。

  2. yipiantiannick 说:

    哦。。。。

    谢谢。。。。。。

    我是想用递归函数来构造一棵树,然后输出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);   //构造右子树

    书的算法就这个,可是,我实现不了,不知道是函数有问题还是调用有问题,各位帮忙看看好吗,在这里被卡了,以后就很难学了。。。。。。。。。。。。

    谢谢!!!

留下一个回复