关于中序建立二叉树的问题
如何用递归方法中序建立二叉树啊?
大家看看,这样为什么不对啊?
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int createbitree(BiTree &T)
{
TElemType elem;
scanf("%c",&elem);
if(elem==' ')T=NULL;
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))abort();
createbitree(T->lchild);
T->data=elem;
createbitree(T->rchild);
}
return 1;
}
int visit(TElemType e)
{
printf("%c ",e);
return 1;
}
int InOrderTraverse(BiTree T,int (*visit)(TElemType e))
{
if(T)
{
if(PreOrderTraverse(T->lchild,visit))
if(visit(T->data))
{
if(PreOrderTraverse(T->rchild,visit))
return 1;
}
else return 0;
}
return 1;
}
int main()
{
createbitree(T);
InOrderTraverse(T);
return 0;
}