免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1080 | 回复: 7
打印 上一主题 下一主题

望大虾指点,下面程序错在那里 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-20 17:38 |只看该作者 |倒序浏览
下面程序运行后便不终止,错在那里,望高手指点,谢谢先!

  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #define NULL 0
  4. typedef struct node
  5. {
  6. char data;
  7. struct node *lchild,*rchild;
  8. }*TREENODE;
  9. /*=========*/
  10. TREENODE CreateTree() //按前序规则建立二叉树
  11. {
  12. TREENODE t;
  13. char c;
  14. c=getchar();
  15. getchar();
  16. printf("%c ",c);
  17. if(c=='#') return(NULL);
  18. else
  19. {
  20.   t=(TREENODE)malloc(sizeof(struct node));
  21.   t->;data=c;
  22.   t->;lchild=CreateTree();
  23.   t->;rchild=CreateTree();
  24. }
  25. return(t);
  26. }
  27. /*========*/
  28. void inorder(TREENODE t) //前序遍历二叉树
  29. {
  30. TREENODE p;
  31. p=t;
  32. if(p)
  33. {
  34. inorder(p->;lchild);
  35. printf("%c ",p->;data);
  36. inorder(p->;rchild);
  37. }
  38. printf("\n");
  39. }
  40. /*========*/
  41. main()
  42. {
  43. TREENODE bitree;
  44. bitree=CreateTree();
  45. inorder(bitree);
  46. }
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-11-20 18:26 |只看该作者

望大虾指点,下面程序错在那里

[quote]原帖由 "fly21"][/quote 发表:

你的程序怎么这么多\\\,什么意思呀?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-11-20 18:30 |只看该作者

望大虾指点,下面程序错在那里

还有你输入'#'是什么意思呀?
想退出吗?那你返回NULL指针,
你的二叉树呢?
还有是中序建立二叉树吧?

论坛徽章:
0
4 [报告]
发表于 2003-11-20 22:12 |只看该作者

望大虾指点,下面程序错在那里

NULL表示建立二叉树结束。我想通过此程序建立任意二叉树,是中序。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-11-20 22:29 |只看该作者

望大虾指点,下面程序错在那里

[quote]原帖由 "fly21"]NULL表示建立二叉树结束。我想通过此程序建立任意二叉树,是中序。[/quote 发表:

你返回了NULL,然后赋给了bitree,
你怎么去遍历了呀,你的二叉树都找不到了!

论坛徽章:
0
6 [报告]
发表于 2003-11-21 02:38 |只看该作者

望大虾指点,下面程序错在那里

那该如何修改?这是教材上的代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-11-21 21:45 |只看该作者

望大虾指点,下面程序错在那里

[quote]原帖由 "fly21"]那该如何修改?这是教材上的代码[/quote 发表:

不好意思,我看的太匆忙,看错了。
你的代码没有问题,关键是输入的时候
你输入的方法不对。你要在每个叶子节点的
左右子域输入#,就是返回NULL填入叶子节点的左右子域。
比如中序建立这样的树,根节点是a,左节点是b,右节点是c,
你这样输入:ab##c##,然后回车就可以了。误导了你,
不好意思。

论坛徽章:
0
8 [报告]
发表于 2003-11-22 13:46 |只看该作者

望大虾指点,下面程序错在那里

谢谢lenovo指点,问题得到解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP