标题:二叉树,找不到错误
取消只看楼主
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
结帖率:92.86%
已结贴  问题点数:20 回复次数:2 
二叉树,找不到错误
无法输出,不知道为什么(为了方便,头尾件都放在jack.h里了)
程序代码:
#include"jack.h"

struct tree
{
  char data;
  struct tree *l_node,*r_node;
};
typedef struct tree TREE;

int creat_tree(TREE *root)
{
  char c;
      c=getchar();
      if(c != ' ')
    {
      root=malloc(sizeof(TREE));
      root->data=c;
      creat_tree(root->l_node);
      creat_tree(root->r_node);
    }
      else
    root=NULL;
}

int print_tree(TREE *root)
{
  if(root)
    {
      printf("%c ",root->data);
      print_tree(root->l_node);
      print_tree(root->r_node);
    }
}

int main()
{
  TREE *root=NULL;
  creat_tree(root);
  print_tree(root);
}

搜索更多相关主题的帖子: 二叉树 struct tree data int 
2018-04-09 07:47
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
得分:0 
回复 2楼 九转星河
...不懂为啥书里的开头代码是
typedef struct bitnode {char data; struct bitnode *lchild,*rchild;} bitnod , *bitree;
然后创造二叉树时函数原型是这样的
creatbitree(bitree *t);
然后main里用这个函数时 是这样的
creatbitree(&t);

他用了双重指针么?为啥? 我写的哪里有问题么?

2018-04-09 09:36
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
得分:0 
回复 4楼 九转星河
感谢这位老铁提示。改过来了。。
程序代码:
#include"jack.h"

struct tree
{
  char data;
  struct tree *l_node,*r_node;
};
typedef struct tree TREE;

TREE * creat_tree(TREE *root)
{
  char c;
      c=getchar();
      if(c != ' ')
    {
      root=malloc(sizeof(TREE));
      root->data=c;
      root->l_node=creat_tree(root->l_node);
      root->r_node=creat_tree(root->r_node);
    }
      else
    root=NULL;
      return root;
}

int print_tree(TREE *root)
{
  if(root)
    {
      printf("%c ",root->data);
      print_tree(root->l_node);
      print_tree(root->r_node);
    }
}

int main()
{
  TREE *root;
  root=creat_tree(root);
  print_tree(root);
}

2018-04-09 10:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485875-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.443481 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved