回 帖 发 新 帖 刷新版面

主题:急!!急!大家来帮我看看我的二叉树创建出的问题

#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左孩子:
请输入的
左孩子:
为什么出来两个一样的"请输入"......怎么改啊.....大家帮帮忙

回复列表 (共2个回复)

沙发

没人能解答我的问题么??????

板凳

注意结点内容的输入后,需要清空input buffer,即在scanf函数后使用一个fflush函数,否则多余的回车会影响程序运行导致S循环。

我来回复

您尚未登录,请登录后再回复。点此登录或注册