回 帖 发 新 帖 刷新版面

主题:求教这段代码错在哪里?为什么不能执行

用递归建立并打印二叉树:能否达到建立的目的?如何错了?

#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
     char data;
     struct node *lchild, *rchild;}    bitree;


bitree * CreateBitree(bitree *b)
{


     b->data = getchar();



     if(b->data == '0')
     {
      b=NULL;
     }
     else
     {
          b = (bitree *)malloc(sizeof(bitree));
          b->data = getchar();
           CreateBitree(b->lchild);
           CreateBitree(b->rchild);
     } 



     return b;
}

void treeprint(bitree*b)
      {    if(b!=NULL)
       printf("%c ",b->data);
      treeprint(b->lchild);
     treeprint(b->rchild);

     printf("\n");
       }





void main()
  {
     bitree*p=NULL;
     p=CreateBitree(p);
     treeprint(p);


  }

回复列表 (共1个回复)

沙发

bitree *CreatBitree (void)
{
    char data = getchar ();
    bitree *b;

    if (data == '0') return NULL;
    b = (bitree *)malloc (sizeof (bitree));
    b->data = data;
    b->lchild = CreatBitree ();
    b->rchild = CreatBitree ();

    return b;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册