主题:求教这段代码错在哪里?为什么不能执行
用递归建立并打印二叉树:能否达到建立的目的?如何错了?
#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);
}
#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);
}