| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:二叉树的建立问题
只看楼主 加入收藏
zyking80
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-18
收藏
 问题点数:0 回复次数:7 
二叉树的建立问题
建立的时候怎么输入#无法结束,希望各位指教!

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode{
   TElemType      data;
   struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;


void CreatBiTree(BiTree &T){
   
    TElemType data;
    //scanf("%c",&data);
    data=getchar();
    if(data!='#'){   
       T=(BiTNode *)malloc(sizeof(BiTNode));
       if(T==NULL)
          return;
       T->data=data;
       CreatBiTree(T->lchild);
       CreatBiTree(T->rchild);
    }
    else{
        T=NULL;
    }
}

void main(){
    BiTree T=NULL;
    printf("先序输入二叉树元素并以#结束\n");
    CreatBiTree(T);
}
搜索更多相关主题的帖子: 二叉树 
2010-08-18 14:39
Alen0128
Rank: 4
等 级:业余侠客
帖 子:171
专家分:222
注 册:2009-12-26
收藏
得分:0 
你有一参数写错了
应该是  BiTree T
收到的鲜花
  • zyking802010-08-19 16:27 送鲜花  3朵  

-不想让你发现我 凌乱的脚步 ,我努力 跟上你的速度
2010-08-18 15:24
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
//scanf("%c",&data);
data=getchar();

这个改成

scanf(" %c",&data);
//data=getchar();

应该可以了
收到的鲜花
  • zyking802010-08-19 16:25 送鲜花  3朵  

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-18 15:53
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode{
   TElemType      data;
   struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;


void CreatBiTree(BiTree &T){        //参数改成(BiTree T)
   
    TElemType data;
    //scanf("%c",&data);
    data=getchar();                //改成data = scanf("%c%*c",&data)
    if(data!='#'){   
       T=(BiTNode *)malloc(sizeof(BiTNode));
       if(T==NULL)
          return;
       T->data=data;
       CreatBiTree(T->lchild);
       CreatBiTree(T->rchild);
    }
    else{
        T=NULL;
    }
}

void main(){
    BiTree T=NULL;
    printf("先序输入二叉树元素并以#结束\n");
    CreatBiTree(T);
}
另外你函数无法验证输入是否正确,所以建议写一个输出二叉树的函数。
还有你这个创建二叉树的函数无法完成你要的功能,你必须改成有返回值的函数或者参数改为二级指针。
收到的鲜花
  • zyking802010-08-19 16:26 送鲜花  3朵  
2010-08-19 00:15
zyking80
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-18
收藏
得分:0 
回复 楼主 zyking80
应该可以的
2010-08-19 16:21
zyking80
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-18
收藏
得分:0 
回复 4楼 erikyo
谢谢!
如果可以我还想请教一下,函数的参数前面单纯的*,&和*&有什么区别,望指教!
2010-08-19 16:24
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
楼上的方法都成功了么
2010-08-19 17:01
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
以下是引用zyking80在2010-8-19 16:24:53的发言:

谢谢!
如果可以我还想请教一下,函数的参数前面单纯的*,&和*&有什么区别,望指教!
关于函数的形参,我只看见过*以及**之类的,没有看到过&修饰的,所以谈不上区别。。
2010-08-19 22:53
快速回复:二叉树的建立问题
数据加载中...
 
   



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

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