| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖
标题:帮忙看下这个2叉树的建立
取消只看楼主 加入收藏
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
 问题点数:0 回复次数:8 
帮忙看下这个2叉树的建立
#include"stdio.h"
typedef struct a{
 char b;
 struct a *l,*r;  
}c;
void maketree(c *q);
void zhongxu(c *q);
main()
{
  c *h;
  maketree(h);
  zhongxu(h);
  return 0;
}
void maketree(c *q)            /*中序输入*/
{
   c *p;
   char x;
   p=(c *)malloc(sizeof(c));
   q=p;
   printf("plesase enter the data\n");
   p->b=getche();                                                 /*输入节点的数据域*/
   printf("if you don't want to the left plesase enter the '#'\n");
   x=getche();      
  if(x!='#')                                                       /*判断有没左孩子*/
  maketree(p->l);
  else
   p->l=NULL;
  printf("if you don't want to the right plesase enter the '#'\n");
   x=getche();
  if(x!='#')                                                           /*判断有没右孩子*/
  maketree(p->r);
   else
   p->r=NULL;
}
void zhongxu(c *q)  /*中序输出*/
{
 if(q!=NULL)
 {
  printf("%c",q->b);
  zhongxu(q->l);
  zhongxu(q->r);
 }
}
代码问题是输不出结果来,但本人感觉在建立2叉树上逻辑上是正确的
先谢了
搜索更多相关主题的帖子: void include return 
2008-05-10 17:09
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
有点急

程序员的日子就是 泡面+电脑+床
2008-05-10 17:30
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
...

程序员的日子就是 泡面+电脑+床
2008-05-10 17:41
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
....

程序员的日子就是 泡面+电脑+床
2008-05-10 17:49
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
怎么有问题 根节点我通过那个方法也实现了
   再一个你说的回归是什么

程序员的日子就是 泡面+电脑+床
2008-05-10 18:02
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
......

程序员的日子就是 泡面+电脑+床
2008-05-10 18:41
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
main()
{
  c *h;
  maketree(h);
  zhongxu(h);
  return 0;
}
void maketree(c *q)            /*中序输入*/
{
   c *p;
   char x;
   p=(c *)malloc(sizeof(c));  
   q=p;
 我先调用maketree(h); h传给void maketree(c *q)中的q  p=(c *)malloc(sizeof(c)); 再为p分配内存
 q=p; 把p赋给q 那么我的头指针(即根节点)怎么可能是空

程序员的日子就是 泡面+电脑+床
2008-05-10 19:00
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
你的意思是不是我那个头指针是悬空指针,在传给q的时候,没有地址,但q的地址经过(q=p)改变了 所以应该要用指针的指针
  Thanks

程序员的日子就是 泡面+电脑+床
2008-05-10 19:19
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
我清楚了 只要用指针的指针就解决了
  但还有点不清楚 如果我声明个指针不给其赋值 那么电脑会随机为它分配个地址吗

程序员的日子就是 泡面+电脑+床
2008-05-10 19:28
快速回复:帮忙看下这个2叉树的建立
数据加载中...
 
   



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

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