请教一下:二叉树的生成,程序调试通过了,要如何输入才有正确的显示效果?
#include "stdio.h"
#include "stdlib.h"
#define Max 50
typedef char elemtype;
typedef struct btnode{
elemtype data;
struct btnode *lchild;
struct btnode *rchild;
}bitnode,*bitree;
bitree CreateBiTree()
{
bitree t;
char ch;
scanf("%c",&ch);
if(ch=='')
t=NULL;
else
{
t=(bitnode *)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreateBiTree();
t->rchild=CreateBiTree();
}
return t;
}
void PreOrder(bitree bt)
{
if(bt!=NULL){
printf("%c",bt->data);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
void MidOrder(bitree bt)
{
if(bt!=NULL){
MidOrder(bt->lchild);
printf("%c",bt->data);
MidOrder(bt->rchild);
}
}
void PostOrder(bitree bt)
{
if(bt!=NULL){
PostOrder(bt->lchild);
PostOrder(bt->rchild);
printf("%c",bt->data);
}
}
main()
{
bitree bt1;
printf("创建二叉树:\n");
bt1=CreateBiTree();
printf("先序遍历二叉树递归算法:\n");
PreOrder(bt1);
printf("中序遍历二叉树递归算法:\n");
MidOrder(bt1);
printf("后序遍历二叉树递归算法:\n");
PostOrder(bt1);
}
程序调试没有错误提示,但是创建二叉树时一直要求输入,却没有生成树以及后面的遍历效果。请高手指点,谢谢!