#include
#include
#define NULL 0
struct btree
{
char data;
btree *lchild;
btree *rchild;
};
void displaybtree(btree *t);
btree *createbtree(btree *t);
void main()
{
btree *t1,*t2;t1=(btree *)malloc(sizeof(btree));t2=(btree *)malloc(sizeof(btree));
printf("请输入二叉树:");
t2=createbtree(t1);
printf("输出为:");
displaybtree(t2);
}
btree *createbtree(btree *t)
{
t=(btree *)malloc(sizeof(btree));
char ch;
ch=getchar();
if(ch=='#')
t=NULL;
else
{
t->data=ch;
createbtree(t->lchild);
createbtree(t->rchild);
}
return t;
}
void displaybtree(btree *t)
{
if(t!=NULL)
{ printf("%c",t->data);
displaybtree(t->lchild);
displaybtree(t->rchild);
}
}
对于树节点T,此程序会重复动态分配内存。