我自己写了个二叉树的创建程序,在创建输入节点的数据的时候总是不能中止,从而不能进入遍历函数的执行,
代码我贴出来,希望得到指教,谢谢!
#include "stdio.h"
#include "malloc.h"
// #define NULL 0
typedef int DataType;
typedef struct node{
DataType data;
struct node *lchild,*rchild;
}BitNode;
typedef BitNode *BitTree;
BitTree CreateTree()
{
BitNode *t;
DataType x;
scanf(" %d",&x);
if(x==0) t=NULL;
else
{
t=(BitNode *)malloc(sizeof(BitNode));
t->data=x;
t->lchild=CreateTree();
t->rchild=CreateTree();
}
return t;
}
void inorder(BitTree t)
{
if(t!=NULL)
{
inorder(t->lchild);
printf(" %d ",t->data);
inorder(t->rchild);
}
}
void main(void)
{
BitTree root;
printf("\n");
root=CreateTree();
inorder(root);
}