| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1378 人关注过本帖
标题:数据结构关于二叉树建立及遍历(用C语言)
只看楼主 加入收藏
nicknickwang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-5
收藏
 问题点数:0 回复次数:2 
数据结构关于二叉树建立及遍历(用C语言)
编写一个主函数,实现以下函数的所有功能 。。。


可按如下格式定义二叉树的链式存储结构:
typedef struct btreenode
{datatype data;
struct btreenode *lchild;
struct btreenode *rchild;
}bnode;




模块划分:(1)creat( )函数:建立只有根结点的二叉树
(2)insertL ( )函数:结点作为左孩子插入二叉树
(3)insertR ( )函数:结点作为右孩子插入二叉树
(4)preorder ( )函数:前序遍历
(5)inorder ( )函数:中序遍历
(6)postorder( )函数:后续遍历





bnode *create(datatype x, bnode *lbt, bnode *rbt)
{ bnode *p;
if((p=( bnode * )malloc(sizeof(bnode)))==NULL)
return NULL;
p->data=x;
p->lchild=lbt;
p->rchild=rbt;
return p; }
/*结点作为左孩子插入二叉树*/
bnode *insertL(datatype x, bnode *Parent)
{ bnode *p;
if((p=( bnode * )malloc(sizeof(bnode)))==NULL)
return NULL;
p->data=x;
p->lchild=NULL;
p->rchild=NULL;
Parent->lchild=p;
return p; }
/*结点作为右孩子插入二叉树*/
bnode *insertR(datatype x, bnode *Parent)
{ bnode *p;
if((p=( bnode * )malloc(sizeof(bnode)))==NULL)
return NULL;
p->data=x;
p->lchild=NULL;
p->rchild=NULL;
Parent->rchild=p;
return p; }
/*前序遍历*/
void preorder(bnode *bt)
{ printf(" %d ",bt->data);
if(bt->lchild!=NULL) preorder(bt->lchild);
if(bt->rchild!=NULL) preorder(bt->rchild); }
/*中序遍历*/
void inorder(bnode *bt)
{ if(bt->lchild!=NULL) inorder(bt->lchild);
printf(" %d ",bt->data);
if(bt->rchild!=NULL) inorder(bt->rchild); }
/*后序遍历*/
void postorder(bnode *bt)
{ if(bt->lchild!=NULL) postorder(bt->lchild);
if(bt->rchild!=NULL) postorder(bt->rchild);
printf(" %d ",bt->data); }


其实是C的问题,我的指针学的不太好,高手指教/
搜索更多相关主题的帖子: 二叉树 遍历 数据结构 C语言 
2007-09-30 14:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
if((p=( bnode * )malloc(sizeof(bnode)))==NULL)
return NULL;
分配的空间没有初始化,它怎么可能与NULL比较.
再说都已经分配空间,你却要返回NULL.

倚天照海花无数,流水高山心自知。
2007-09-30 20:37
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
只有判断它是否分配成功.

倚天照海花无数,流水高山心自知。
2007-09-30 20:39
快速回复:数据结构关于二叉树建立及遍历(用C语言)
数据加载中...
 
   



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

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