代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int TElemtype;
typedef struct BiTNode
{
TElemtype data;
struct BiTNode *lchild,*rchild;
}*BiTree;
void CreatTree(BiTree *a)
{
char *h;
h=(char*)malloc(sizeof(char));
int j;
do
{
gets(h);
for(j=0;j<strlen(h);j++)
{
if(!isdigit(h[j]))
{
break;
}
}
}while((j==0)||(j!=strlen(h)));
if(atoi(h)==0)
{
free(h);
*a=NULL;
}
else
{
*a=(struct BiTNode*)malloc(sizeof(struct BiTNode));
(*a)->data=atoi(h);
free(h);
(*a)->rchild=NULL;
(*a)->lchild=NULL;
if(!(*a))
{
printf("内存申请失败!\n");
}
printf("请输入左孩子\n");
CreatTree(&(*a)->lchild);
printf("请输入右孩子\n");
CreatTree(&(*a)->rchild);
}
}
void InOrderTrsverse(BiTree a)
{
if(a)
{
InOrderTrsverse(a->lchild);
printf("%d\n",a->data);
InOrderTrsverse(a->rchild);
}
}
main()
{
BiTree a;
printf("请输入根节点\n");
CreatTree(&a);
printf("输出结果为:\n");
InOrderTrsverse(a);
system("pause");
return 0;
}
程序运行如下: