| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2219 人关注过本帖
标题:数据结构二叉树(c语言版)
只看楼主 加入收藏
TRUTH_2015
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2015-5-13
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:4 
数据结构二叉树(c语言版)
#include<stdio.h>
#include<malloc.h>
typedef int elemtype;
typedef struct BiTNode
{
 elemtype data;
 struct BiTNode *lchild,*rchild;
}BiTNode;

void creatBiTree(BiTNode *T)
{
    elemtype ch;
    scanf("%d",&ch);
 if(ch==0)
     T=NULL;
 else
 {
  T=(BiTNode *)malloc(sizeof(BiTNode));
  T->data=ch;
  creatBiTree(T->lchild);
  creatBiTree(T->rchild);
 }
}

void vist(elemtype e)//输出函数
{
 printf("%3d",e);
}

void preorder(BiTNode *T)
{
   
    if(T!=NULL)
    {   
        vist(T->data);
        preorder(T->lchild);
        preorder(T->rchild);
    }
}


void main()
{
 BiTNode *A;
 creatBiTree(A);
 preorder(A);

}
在此题中creatBiTree()函数的操作的结果不能传给preorder()函数来运用
使程序运行失败,应该怎么传递。
求指点。
搜索更多相关主题的帖子: include 二叉树 c语言 
2015-06-11 18:45
TRUTH_2015
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2015-5-13
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-06-11 19:06
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:14 
程序代码:
void creatBiTree(BiTNode *T)
{
    elemtype ch;
    scanf("%d",&ch);
if(ch==0)
     T=NULL;
else
{
  T=(BiTNode *)malloc(sizeof(BiTNode));
  T->data=ch;
  creatBiTree(T->lchild);
  creatBiTree(T->rchild);
}
}

递归部分,隐藏了循环,也遗忘了为新结点申请内存
只能一遍遍的抛出那解决不了的异常

剑栈风樯各苦辛,别时冰雪到时春
2015-06-11 19:45
TRUTH_2015
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2015-5-13
收藏
得分:0 
回复 3楼 林月儿
图片附件: 游客没有浏览图片的权限,请 登录注册

这是严蔚敏《数据结构》书上的代码啊!
2015-06-12 14:12
TRUTH_2015
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2015-5-13
收藏
得分:0 
T=(BiTNode *)malloc(sizeof(BiTNode));
这一步不就是对内存的申请吗?  creatBiTree(T->lchild)不是实现了节点的链接吗?
不懂求指点,谢谢!
2015-06-12 14:17
快速回复:数据结构二叉树(c语言版)
数据加载中...
 
   



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

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