读书人

递归 输入有关问题

发布时间: 2013-12-05 22:27:44 作者: rapoo

递归 输入问题
# 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(); //吃掉回车符

读书人网 >C++

热点推荐