wangzhenchuan 发表于 2008-5-17 13:46

这个是建一棵二叉树的程序,在以先根的顺序输出的,怎么弄不出来的呀,例如输入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();
}


页: [1]

编程论坛