二叉树基本操作+数据结构+实验报告
中南大学
数据结构实验报告
题 目 二叉树基本操作 学生姓名 联系电话 指导老师 专业班级 完成时间 2007年11月25 日
第 2 页 共 12 页
目 录
一、 系统功能介绍…………………………………2
二、 需求分析………………………………………2
三、 概要设计………………………………………2
四、 详细设计………………………………………5
五、 调试分析………………………………………8
六、 使用说明………………………………………8
七、 测试结果………………………………………9
八、 心得体会………………………………………10
九、 附录(程序代码)……………………………11
2
第 3 页 共 12 页
一、系统功能介绍
该程序是用C-Free编写的,主要功能是实现二叉树的定义和基本操作,包括定义二叉树的结构类型以及各个操作的具体函数的定义和主函数的定义。
各操作主要包括:初始化二叉树、按先序次序建立二叉树、检查二叉树是否为空、前序、中序、后序遍历树的方式、求树的深度、求树的结点数目、清空二叉树等九个对树的操作。
二、需求分析
本程序由C-free工具编写完成了初始化,建立二叉树,检查树空与否,用前序、中序、后序遍历二叉树,求树的深度,求树的结点数目,清空二叉树等功能。
1)输出的形式和输出值的范围:在选择操作中,都以整型(数字)选择操作,插入和输出的数值都是char类型的字符;
2)输出的形式:在每次操作后,都会提示操作是否成功或者操作的结果;
3)程序达到的功能:完成初始化、检查是否为空、请空、遍历、求树的深度、求树的结点数目等功能;
4)测试数据设计:
A,按先序次序建立二叉树。依次输入a,b,c,d,e,f,g.建立二叉树。 B,分别按先序,中序和后序遍历输出二叉树中的结点元素。 C,求树的高度和结点数。
三、概要分析
为了实现上述功能,定义二叉树的抽象数据类型。 ADT BinTree{
数据对象D:D是具有相同特性的数据元素的集合。 数据关系R:
若D=¢,称BinTree为空二叉树
若D≠¢,则R={H},H是如下的二元关系;
(1) 在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2) 若D-{root}≠¢,则存在D-{root}={D1,Dr},且D1∩Dr=¢;
(3) 若D≠¢,则中存在唯一的元素x1,
中存在唯一的元素且存在上的饿关系
(4) 是一棵符合本定义的二叉树,称为根的左子树,是一棵符合本定义的二叉树,称为
根的右子树。
基本操作 P:
3
第 4 页 共 12 页
BinTree BinTreeInit() {
操作结果:构造空的二叉树 初始条件:给出二叉树的定义 }
BinTree BinTreeCreat(BinTree &BT) {
操作结果:用先序序列创建一个二叉树 初始条件:构造了空的二叉树 }
int BinTreeEmpty() {
操作结果:返回0或1,即树的空与否 初始条件:二叉树存在 }
void PreBinTraverse(BinTree BT) {
操作结果:按先序序列遍历输出二叉树 初始条件:二叉树存在 }
void InBinTraverse(BinTree BT) {
操作结果:按中序序列遍历输出二叉树 初始条件:二叉树存在 }
void PastBinTraverse(BinTree BT) {
操作结果:按后序序列遍历输出二叉树 初始条件:二叉树存在 }
int BinTreeDepth(BinTree BT) {
操作结果:返回二叉树的深度 初始条件:二叉树存在 }
int BinTreeCount(BinTree BT) {
操作结果:返回二叉树的结点个数 初始条件:二叉树存在 }
void BinTreeClear(BinTree &BT) {
操作结果:清空释放二叉树的结点 初始条件:二叉树存在
4
第 5 页 共 12 页
} }
四、详细设计
流程图
BinTreeInit()BinTreeCreat()BinTreeEmpty() PreBinTraverse(BT)Main()BinTraverse()InBinTraverse(BT) PastBinTraverse(BT) BinTreeDepth()BinTreeCount()BinTreeClear() 实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。 typedef int DataType; 树节点类型定义
typedef struct BitNode{ int data;
struct BitNode *lchild,*rchild;
}BitNode,*BitTree;1. 初始化二叉树,即把树根指针置空 1. Status BinTreeInit() { BitTree BT;
BT=(BinTree)malloc(sizeof(BinNode)); BT=NULL; return OK; }
2. 按先序次序建立一个二叉树
5
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




