- 12
- 0
- 约6.36千字
- 约 28页
- 2020-03-26 发布于江西
- 举报
武 汉 工 程 大 学 计算机科学与工程学院 《数据结构》实验报告[2]
专业班级
智能 01
实验地点
机电大楼 4 楼 419 机房
学生学号
指导教师
学生姓名
实验时间
第 12 周~第 14 周 星期 2
实验项目
树性结构的综合使用
实验类别
操作性() 验证性( ) 设计性( ) 综合性( √) 其它(
)
实验目的及要求
1.实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。
2.求二叉树的结点个数,叶子结点个数,二叉树的高度,度为 2 的结点 个数。
成 绩 评 定 表
类 别
评 分 标 准
分值
得分
合 计
上机表现
积极出勤、遵守纪律 认真完成设计任务
30 分
报告质量
操作规范、功能正确 填写完整、体现收获
70 分
说明:
评阅教师:
日 期: 20 年 月
实 验
实 验 内 容
日
计算机科学与工程学院
一.实验内容
实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。
求二叉树的结点个数,叶子结点个数,二叉树的高度,度为 2 的结点个数。
二.程序的设计思想
1 实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。
先构造二叉树,根据先序遍历的思想,输入根后,再输入左子树,直至左子树为空则输 入上一层右字树。
二叉树的非递归遍历是用显示栈来存储二叉树的结点指针,先序遍历时,按二叉 树前序遍历的顺序访问结点,并将结点的指针入栈,直到栈顶指针指向结点的左指针域为 空时取出栈顶指针并删除栈顶指针,访问刚取出的指针指向的结点的右指针指向的结点并 将其指针入栈,如此反复执行则为非递归操作。
二叉树的递归遍历:若二叉树为空,则空操作
先序遍历:
访问根结点;
先序遍历左子树;
先序遍历右子树。
中序遍历 :
中序遍历左子树;
访问根结点;
中序遍历右子树
后序遍历:
后序遍历左子树;
后序遍历右子树;
访问根结点。
2.求二叉树的结点个数,叶子结点个数,二叉树的高度,度为 2 的结点个数。
求二叉树的叶子结点个数:先分别求得左右子树中个叶子结点的个数,再计算出 两者之和即为二叉树的叶子结点数。
二叉树的结点个数之和:先分别求得左子树右子树中结点之和,再计算两者之和 即为所求。
《数据结构》实验报告
2
二叉树
二叉树的高度:首先判断二叉树是否为空,若为空则此二叉树高度为 0,。否则, 就先分别求出左右子树的深度进行比较,取较大的树加一即为所求。
二叉树的度为 2 的结点个数:计算有左右孩子的结点个数,即为度为 2 的结点个
实 验 内 容
计算机科学与工程学院
数。
三.编程过程中遇到的问题及解决办法
后续遍历的非递归函数涉及到回溯的方法,开始设计的方案想的太过于简单,所以形 成了死循环,总是在最后的节点处不停地循环,后改成回溯后,该问题得到解决。
计算二叉树中度为 2 的结点个数中,返回循环的时候不论根结点有没有左右子树,但 个人设计时,根总是会将自己默认为有左右子树,自行增加 1.后在同学帮助下才看到自己 的这个失误。
四.程序的闪光点(自我评价)
程序模块化,各个函数分开描述,方便观察
关键处有注释
建立二叉树时,用先序提示输入,比较人性化。
五.程序源代码(以文件为单位提供)
#includeiostream.h
#includemalloc.h
#define Maxsize 100
typedef struct TREE{
struct TREE *lTree;
struct TREE *rTree;
char data;
}Tree;
void InitTree(Tree*);//初始化树
void CreatTree(Tree*);//创建二叉树
void PreTraverse(Tree*);//先序遍历递归
void PreOrderTraverse(Tree*);//先序遍历非递归
void InTraverse(Tree *tree);//中序遍历递归
《数据结构》实验报告
3
计算机科学与工程学院
void InOrderTraverse(Tree *tree);//中序遍历非递归
void PostTraverse(Tree *tree);//后序遍历递归
void LastOrderTraverse(Tree *tree);//后序遍历非递归
int DepthTree(Tree *tree);//计算树的深度
int LeafsTree(Tree *tree);//计算叶子结点个数
int NodesTree(Tree *tree);//计算结点个数
int Twochild(Tree*tree);//计算度为二的结点个数
void main()
{
int H,L;
Tree tree;
// Tree m;
InitTree(tree);
Cr
原创力文档

文档评论(0)