求大神看看这段c代码有啥问题(建立二叉树)为什么输入的时候结束不了,急求!!!!

#include
#include
typedef struct Node
{
char data;
struct Node* LChild;
struct Node* RChild;
}BiTNode,*BiTree;
int main()
{
void CreateBiTree(BiTree *bt);
BiTree bt;
printf("输入字符序列建立二叉链表:");
CreateBiTree(&bt);
return 0;
}
void CreateBiTree(BiTree *bt)
{
char ch;
ch=getchar();
if(ch=='.')*bt=NULL;
else
{
*bt=(BiTree)malloc(sizeof(BiTNode));
(*bt)->data=ch;
CreateBiTree(&((*bt)->LChild));
CreateBiTree(&((*bt)->RChild));
}
}

没有分支条件,一直向左递归

说明你还是没有理解数啊。

 比如你输入:av..c..
 那么结果就是:
 //    a
 //   / \
 //  v   c

像你输入的"asf.........."那么就是这样的:
//       a
//      /  \
//    s
//  /   \
// f

不理解程序运行的顺序,可以单步调试,一步步查看。
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。