主题:急!!急!大家来帮我看看我的二叉树创建出的问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 10
#define judge(x) (x->lc=NULL&&x->rc=NULL) // 宏对数据类型不敏感
typedef struct node *pointer;
typedef struct node
{
char name;
pointer lc,rc;
}node; //?两处 node
//pointer L;
pointer createtree () //创建时不传变量
{
pointer Q;
Q = (pointer)malloc(sizeof(node));
scanf("%c",&(Q->name));
if( Q->name == '0')
{
return NULL;
}
else
{
printf("\n请输入的%c左孩子:", Q->name);
Q->lc=createtree ();
/*printf("\n请输入的%c右孩子:");
Q->rc=createtree ();*/
return Q;
}
}
main()
{
pointer L;
printf("请输入根节点:");
L=createtree ();
}
运行结果如下:
请输入根节点:a
请输入的a左孩子:
请输入的
左孩子:
为什么出来两个一样的"请输入"......怎么改啊.....大家帮帮忙
#include<stdlib.h>
#include<string.h>
#define maxsize 10
#define judge(x) (x->lc=NULL&&x->rc=NULL) // 宏对数据类型不敏感
typedef struct node *pointer;
typedef struct node
{
char name;
pointer lc,rc;
}node; //?两处 node
//pointer L;
pointer createtree () //创建时不传变量
{
pointer Q;
Q = (pointer)malloc(sizeof(node));
scanf("%c",&(Q->name));
if( Q->name == '0')
{
return NULL;
}
else
{
printf("\n请输入的%c左孩子:", Q->name);
Q->lc=createtree ();
/*printf("\n请输入的%c右孩子:");
Q->rc=createtree ();*/
return Q;
}
}
main()
{
pointer L;
printf("请输入根节点:");
L=createtree ();
}
运行结果如下:
请输入根节点:a
请输入的a左孩子:
请输入的
左孩子:
为什么出来两个一样的"请输入"......怎么改啊.....大家帮帮忙