总有一天你的谜底会解开
2021-03-28 08:26
采纳率: 78.8%
浏览 26

c语言二叉树的创建与遍历,求大佬帮我看看错在哪

#include"stdio.h"
#include"stdlib.h"
struct A
{
    struct A *left;
    struct A *right;    
    char data;
}*root;
struct A* creat(struct A*);
void xbianli(struct A*);
void zbianli(struct A*);
void hbianli(struct A*);
int main()
{
    root=creat(root);
    xbianli(root);
    zbianli(root);
    hbianli(root);

struct A* creat(struct A*x)
{
    char c;
    c=getchar();
    if(c!='*')
    {
        x=(struct A*)malloc(sizeof(struct A));
        x->data=c;
        x->right=creat(x->right);
        x->left=creat(x->left);
    }
    return x;
}
void xbianli(struct A*w)
{
    if(w!=NULL)
    {
        printf("%c ",w->data);
        xbianli(w->left);
        xbianli(w->right);
    }
}
void zbianli(struct A*c)
{
    if(c!=NULL)
    {
        zbianli(c->left);
        printf("%c ",c->data);
        zbianli(c->right);
    }
}
void hbianli(struct A*v)
{
    if(v!=NULL)
    {
        hbianli(v->left);
        hbianli(v->right);
        printf("%c ",v->data);
    }
}

 

 

当我输入ABCD*F*E****** 时,程序并不会停止读入字符,也不会显示我想打印的结果,求大佬帮看看吧

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题