回 帖 发 新 帖 刷新版面

主题:[讨论]各位大侠帮我看看程序哪里出错了

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct bitnod

    char data;
    struct bitnod *lchild;
    struct bitnod *rchild;
}bitree;
void creatbitree(bitree *b);
void preorder(bitree *b);
void main()
{
  bitree *c;
  creatbitree(c);
  preorder(c);
}
void preorder(bitree *c)
{
    if(c!=NULL)
      {
          printf("%c",c->data);
          if(c->lchild!=NULL)
          preorder(c->lchild);
          if(c->rchild!=NULL)
          preorder(c->rchild);
       }
}


void creatbitree(bitree *c)
{
    char ch;
    ch=getchar();
    if(ch=='#')
    c=NULL;
   else
    {
      c=(bitree *)malloc(sizeof(bitree));
      c->data=ch;//生成树节点
          creatbitree(c->lchild);
          creatbitree(c->rchild);
    }
    return;//退回上层递归用

}

回复列表 (共3个回复)

沙发

把 bitree *改成 bitnod *

板凳

还是不行啊

3 楼

void creatbitree(bitree *c)
创建之后没有返回节点;
  preorder(c);
会一直为空

我来回复

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