这个是建一棵二叉树的程序,在以先根的顺序输出的,怎么弄不出来的呀,例如输入a b cd ef h j
例如输入a b cd ef h j 如果二叉树中没有的数据用空格来代替如上
最后怎么却输不出数据啊
#include<malloc.h>
typedef char Telemtype;
typedef struct Bitnode
{
Telemtype data;
struct Bitnode *lchild,*rchild;
}Bitnode,*Bitree;
Bitree CreateBitree()
{
Bitree t;
char ch;
scanf("%c",&ch);
if(ch==' ') t=NULL;
else
{
t=(Bitree)malloc(sizeof(Bitnode));
if(!t)
exit(0);
t->data=ch;
t->lchild=CreateBitree();
t->rchild=CreateBitree();
}
return t;
}
int Preordertraverse(Bitree t)
{
if(t)
{
printf("%c",t->data);
if(Preordertraverse(t->lchild))
if(Preordertraverse(t->rchild)) return 1;
return 0;
}
return 1;
}
void main()
{
Bitree t;
printf("input data:\n");
t=CreateBitree();
printf("output data:\n");
Preordertraverse(t);
getch();
}