递归 输入问题
# include<stdio.h>
# include<malloc.h>
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*biTree;
void createtree(biTree T)
{
char c;
printf("plese input a char input " "endof \n");
scanf("%c",&c);//这里 在递归时有一次不会执行 为什么?
printf("存入RTR\n");
if(c == 'E')
{
T = NULL;
}
else
{
T = (BiTNode *)malloc(sizeof(BiTNode));
(T)->data= c;
(T)->lchild = NULL;
T->rchild = NULL;
printf("存入%c\n",c);
createtree((T)->lchild);
printf("右树\n");
createtree((T)->rchild);
}
}
void visittree(char c ,int level)
{
if(c == 'D')
printf("%c is at %d\n",c,level);
}
void ordertree(biTree t,int level)
{
visittree(t->data,level);
ordertree(t->lchild,level+1);
ordertree(t->rchild,level+1);
}
int main(void)
{
biTree t=NULL;
int level=1;
createtree(t);
ordertree(t,level);
return 0;
}
[解决办法]
scanf("%c",&c);//这里 在递归时有一次不会执行 为什么?
getchar(); //吃掉回车符