- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南邮通达数据结构B二叉树的链接表示实验报告
实 验 报 告
( 2014/ 2015 学年 第二学期)
课程名称数 据 结 构B实验名称二叉树的链接表示实验时间2015年 12 月 4日指导单位计算机学院计算机科学与技术系指导教师 徐鹤
学生姓名班级学号学院(系)通达学院专 业信息工程
PAGE 6
实 验 报 告
实验名称二叉树的链接表示指导教师徐鹤实验类型设计实验学时2实验时间2015.12.4一、实验目的和要求
理解二叉树的数据结构。
掌握二叉链表上实现二叉树基本运算的方法。
学会设计基于遍历的、求解二叉树应用问题的方法。二、实验内容:
实现教材中二叉树的链接表示,并基于二叉树遍历算法实现其应用。具体如下:
(一)实现教材中二叉树的链接表示,实现二叉树ADT的基本运算(先序遍历、中序遍历、后序遍历)。
(二)基于二叉树遍历算法实现其应用:
①计算一棵二叉树叶子节点个数。
②统计一棵二叉树的节点个数。
(三)设计main函数,测试实验内容一的运算和实验内容二的算法。三、实验环境(实验设备)
Visual C++ 6.0
实 验 报 告
四、实验过程描述与结果分析
#include stdio.h
#include stdlib.h
typedef struct btnode
{
char element;
struct btnode *lchild,*rchild;
}BTNode;
BTNode * PreCreate(BTNode *Bt) //先序创建二叉树
{
char ch;
ch=getchar();
if(ch==#) //输入为#表示这里建立一个空二叉树
Bt=NULL;
else
{
Bt=(BTNode *)malloc(sizeof(BTNode));
Bt-element=ch;
Bt-lchild=PreCreate(Bt-lchild);
Bt-rchild=PreCreate(Bt-rchild);
}
return Bt;
}
void Preorder(BTNode *Bt) //先序输出二叉树
{
if(Bt)
{
printf(%c ,Bt-element);
Preorder(Bt-lchild);
Preorder(Bt-rchild);
}
}
void Inorder(BTNode *Bt) //中序输出二叉树
{
if(Bt)
{
Inorder(Bt-lchild);
printf(%c ,Bt-element);
Inorder(Bt-rchild);
}
}
void Postorder(BTNode *Bt) //后序输出二叉树
{
if(Bt)
{
Postorder(Bt-lchild);
Postorder(Bt-rchild);
printf(%c ,Bt-element);
}
}
int Size(BTNode *Bt) //求二叉树中的结点数
{
int s,s1,s2;
if(!Bt) //二叉树为空,结点数为0
s=0;
else
{
s1=Size(Bt-lchild);
s2=Size(Bt-rchild);
s=s1+s2+1; //二叉树的结点数等于左右子树结点数的和在加1(根结点)
}
return s;
}
int Leaf(BTNode *Bt) //求二叉树中叶子个数
{
int ll,rl,tl;
if(!Bt) //二叉树为空,叶子个数为0
tl=0;
else if(!Bt-lchild!Bt-rchild) //叶子满足的条件(左右孩子均为空)
tl=1;
else
{
ll=Leaf(Bt-lchild);
rl=Leaf(Bt-rchild);
tl=ll+rl;
}
return tl;
}
int Depth(BTNode *Bt) //求二叉树的深度(高度)
{
int ld,rd,td;
if(!Bt)
td=0;
else
{
ld=Depth(Bt-lchild);
rd=Depth(Bt-rchild);
if(ld=rd) //左右子树高度大的加1,即为二叉树的高度
td=ld+1;
else
td=rd+1;
}
return td;
}
voi
您可能关注的文档
- 区域大地构造 (第五章 中国大地构造概要-1-2012版).ppt
- 医务人员职业暴露个案登记表.doc
- 医务人员职业暴露感染控制及防护制度.doc
- 十六章 船舶火灾自动报警系统.ppt
- 十分钟搞清字符集和字符编码.docx
- 十溴联苯醚(BDE209)孕哺期及出生后暴露对子代小鼠血液系统影响初探.pdf
- 区域大地构造(第三章+岩石圈构造基本类型-....ppt
- 半桥LLC谐振变换器的特性分析_刘玮.pdf
- 半导体工艺制造技术,维纳尺度工程第十三章+封装.pdf
- 华为S2700交换机详版彩页.pdf
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
最近下载
- 18全国生物奥林匹克竞赛试题及答案.pdf VIP
- 导游员的职业素质.ppt VIP
- 高考中立体几何问题的热点题型.pptx
- 大班美术《青花瓷盘》.pptx VIP
- 2025年山东力明科技职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 钢铁冶金概论全套课件.ppt
- 2024年宁夏银川中考物理试题及答案.doc VIP
- 人教(2024)新教材下册(教学计划)- 七年级地理下册(人教版2024).docx
- 辽宁省丹东七中七年级英语下册《Unit 10 Where did you go on vacation》教案 人教新目标版.doc VIP
- 智能建造体系机器人介绍.pptx
文档评论(0)