/* c1.h (程序名) */
#include<string.h>
#include<ctype.h>
#include<malloc.h> /* malloc()等 */
#include<limits.h> /* INT_MAX等 */
#include<stdio.h> /* EOF(=^Z或F6),NULL */
#include<stdlib.h> /* atoi() */
#include<io.h> /* eof() */
#include<math.h> /* floor(),ceil(),abs() */
#include<process.h> /* exit() */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1

typedef struct BiTNode
 {
   char data;
   struct BiTNode *lchild,*rchild; /* 左右孩子指针 */
 }BiTNode,*BiTree;



void CreateBiTree(BiTNode *T)
 { 
   char ch;
   scanf("%c",&ch);
   if(ch==' ') /* 空 */
     T=NULL;
   else
   {
       T=(BiTree)malloc(sizeof(BiTNode));
     if(!T)
       exit(OVERFLOW);
      T->data=ch;/* 生成根结点 */
     CreateBiTree(T->lchild); /* 构造左子树 */     
     CreateBiTree(T->rchild); /* 构造右子树 */
   }
 }


Status Visit(char e)
 {
   printf("%c ",e);
   return OK;
 }




void InOrderTraverse(BiTNode *T)
 {  
   if(T)
   {
     InOrderTraverse(T->lchild); /* 先中序遍历左子树 */
     Visit(T->data); /* 再访问根结点 */
     InOrderTraverse(T->rchild); /* 最后中序遍历右子树 */
   }
 }


main()
{
    BiTree BT;
    
    CreateBiTree(BT);
    InOrderTraverse(BT);
    return 0;
}


高手赐教啊,这样为什么不行?
说出原因啊
谢谢了……