关于简单的二叉数的有关问题.

关于简单的二叉数的问题..
#include   <stdio.h>
#include   <stdlib.h>
typedef   struct   btnode                                           //二叉树的二叉链表存储结构.........
{
char   data   ;
struct   btnode   *lchild,*rchild   ;

}   *bitree   ;

char   createbitree(bitree   t)                                   //先序遍历生成二叉树..........
{
char   temp   ;

t=(bitree   )malloc(sizeof(bitree));
if(t==NULL)
return   0;
printf( "请输入一个字母:   ");
scanf( "%c ",&t-> data);
temp=getchar();             //结束回车...........
if(t-> data!= '   ')
{

createbitree(t-> lchild)   ;//构造左子树...........  
createbitree(t-> rchild)   ;//构造右子树.........
}
return   1;

}


char   PrintElem(char   e)           //打印元素   ........  
{
printf( "%c ",e);
return   1;


}

char   preordretraverse(bitree   t,char   (*   visit)(char   e)     )       //先序遍历二叉树
{
if(t)         //二叉树不为空时
{
visit(t-> data);     //访问根结点
preordretraverse(t-> lchild,visit);     //   先序遍历左子树
preordretraverse(t-> rchild,visit);     //先序遍历右子树


}
return   1;
}

char   main()
{
bitree   t;
char   (*   visit)(char   );
visit=PrintElem   ;
createbitree(t);
preordretraverse(t,visit);
return   1;

}


/*

    /////////////////////////////////////////////////////////////////////////////////////
输入一个元素:   A
输入一个元素:   B
输入一个元素:   C
输入一个元素:    
输入一个元素:    
输入一个元素:   D
输入一个元素:   E
输入一个元素:    
输入一个元素:   G
输入一个元素:    
输入一个元素:    
输入一个元素:   F
输入一个元素:    
输入一个元素:    
输入一个元素:  


    结果因为:A   B   C   D   E   G   F


    ////////////////////////////////////////////////////////////////////////////////////////////

    */


  ///编译没有错。..但输出时出现了问题..请大哥们帮帮忙....谢谢了。..




------解决方案--------------------
帮你修改了一下,你试试吧
........

char createbitree(bitree *t) //先序遍历生成二叉树..........
{
char temp ;

*t=(bitree )malloc(sizeof(bitree));
if(*t==NULL)
return 0;
printf( "请输入一个字母: ");
scanf( "%c ",&(*t)-> data);
temp=getchar(); //结束回车...........
if((*t)-> data!= ' ')
{

createbitree(&(*(t)-> lchild)) ;//构造左子树...........
createbitree(&(*(t)-> rchild)) ;//构造右子树.........
}
return 1;

}

.............

char main()
{
bitree t;
char (* visit)(char);
visit=PrintElem ;
createbitree(&t);
preordretraverse(t,visit);
system( "pause ");