#include<stdio.h>
#include<malloc.h>
#define datatype char
typedef struct node
{datatype data;
 struct node *lchild,*rchild;
}JD;
JD *crt_bt_pre(JD *bt)
{char ch;
 printf("ch=");
 scanf("%c",&ch);
 if(ch==' ') bt=NULL;
 else 
  {bt=(JD*)malloc(sizeof(JD));
   bt->data=ch;
   bt->lchild=crt_bt_pre(bt->lchild);
   bt->rchild=crt_bt_pre(bt->rchild);
   }
  return(bt);
}

void preorder(JD *bt)
{if(bt!=NULL)
  {printf("%c",bt->data);
   preorder(bt->lchild);
   preorder(bt->rchild);
   }
 }

void main()
 {JD *bt;
  bt=crt_bt_pre(bt);
  preorder(bt);}


正好学树了,但写上上面的树后,为了验证树建成功了没,又先序遍历了一次。

但建不了啊,一运行,老是弹出ch= ch= ch=,还有怎么控制结束输入树的结点啊,我只建有限个结点的树啊。