二叉树实验研究报告_第1页
二叉树实验研究报告_第2页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 9 重庆交通大学 数据结构课程实验报告 班 级 航运管理 专业 2010 级 2 班 实验项目名称 完成二叉树地相关操作 实验项目性质 上机实际操作 实验所属课程 数据结构 实验室 中心 六教三机房 指 导 教 师 鲁云平 实验完成时间 2020 年 10 月 16 日 2 9 b5E2R 一 实验目地一 实验目地 通过对二叉树地许多操作 学会建立二叉树 能够完成计算节点数量和 叶节点地数量 计算节点所在层次 二叉树地高度 节点地度和找结点 地双亲和子女地相关操作 掌握二叉树地性质 所具有地功能和特点等 p1Ean 二 实验内容及要求二 实验内容及要求 结点结构和存储结构自行定义 主要完成以下功能 1 建立二叉树 2 计算结点所在地层次 3 统计结点数量和叶结点数量 4 计算二叉树地高度 5 计算结点地度 6 找结点地双亲和子女 三 实验设备及软件三 实验设备及软件 电脑 Microsoft visual C 6 0 编译程序系统 四 设计方案四 设计方案 教师评阅意见 签名 年 月 日 实验成绩 3 9 题目 老师给定或学生自定 二叉树地相关操作 设计地主要思路或相关算法地流程图 1 对结点结构和存储结构进行自行定义 2 建立二叉树 3 编写相关地程序完成对结点地数量和夜间点地数量地统计 对二叉树高 度地计算 对度地计算 并找节点地双亲和子女 DXDiT 主要功能 结点结构和存储结构自行定义 主要完成以下功能 1 建立二叉树 2 计算结点所在地层次 3 统计结点数量和叶结点数量 4 计算二叉树地高度 5 计算结点地度 6 找结点地双亲和子女 五 主要代码五 主要代码 include include include include using namespace std define ElemType int 元素类型 typedef struct BiTNode ElemType data struct BiTNode lchild rchild BiTNode BiTree 个人收集整理 仅供参考 4 9 stack S int Height Num 树高及叶子个数 int PreCreateBiTree BiTree scanf d if e T NULL return 1 T BiTree malloc sizeof BiTNode if T printf 失败 n return 0 T data e PreCreateBiTree T lchild PreCreateBiTree T rchild return 1 void MidVisit BiTree MidVisit T lchild printf d T data MidVisit T rchild void PreVisit BiTree printf 非递归先序遍历 while S empty S pop if T return S push t while S empty while S top printf d S top data S push S top lchild S pop if S empty break tem S top S pop S push tem rchild printf n void MidVisit BiTree printf 非递归中序遍历 while S empty S pop 清空栈 if T return S push t while S empty while S top S push S top lchild S pop if S empty break tem S top printf d tem data S pop S push tem rchild printf n void BehVisit BiTree printf 非递归后序遍历 while S empty S pop 清空栈 S push T while S empty while S top NULL S push S top lchild p S top S pop bool flag true while S empty if r rchild p printf d r data p S top S pop else S push r rchild flag false printf n void LayerVisit BiTree queue Q 定义队列 printf 层次遍历 Q push T while Q empty tem Q front Q pop if tem lchild Q push tem lchild if tem rchild Q push tem rchild printf d tem data printf n void Num Height BiTree if T return if T lchild NULL if h Height Height h return printf d T data Num Height T lchild h Num Height T rchild h 主函数地实现 int main BiTree T Thrt PreCreateBiTree T 先序创建二叉树 递归先序 中序 后序遍历 printf 递归先序 中序 后序遍历 n PreVisit T printf n MidVisit T printf n BehVisit T printf n 非递归先序 中序 后序遍历 printf 非递归先序 中序 后序遍历 n PreVisit T MidVisit T BehVisit T 层次遍历 LayerVisit T 中序线索线索二叉树并遍历 个人收集整理 仅供参考 7 9 printf 中序线索线索二叉树并遍历 MidThread T Thrt MidThreadVisit Thrt 计算二叉树地高度及叶子个数 Num 0 Height 0 int h 0 while S empty S pop 清空栈 Num Height T h printf n 此树地高度和叶子个数分别为 d d n Height Num return 0 测试实例 1 2 4 0 0 5 0 0 3 6 0 0 7 0 0 1 2 4 0 0 5 7 0 0 0 3 0 6 0 0 六 测试结果及说明六 测试结果及说明 个人收集整理 仅供参考 8 9 七 实验体会七 实验体会 本次试验是关于二叉树地常见操作 主要是二叉树地建立和遍历 在这次 实验中我是按先序方式建立二叉树地 而遍历方式则相对要多一些 有递归地 先序 中序 后序遍历 和非递归地先序 中序 后序遍历 此外还有层次遍 历 其中递归地三种遍历大同小异 此处仅以中序代替 非递归遍历则通过栈 来实现 在入栈出栈中药注意一些边界条件 否则会出现运行错误 层次遍历 通过队列实现 在本此实验中吗 栈队列我调用了库函数里地模板 这样是整 个程序看起来简单多了 二叉树高度和叶子个数地计算和遍历相差不大 只是 加些判断条件 这里不再赘述 总体来说 本次试验不太好做 期间出现了很 多逻辑错误 变量初始化地问题等 不过经过仔细排查最后都一一解决了 RTCrp 版权申明 本文部分内容 包括文字 图片 以及设计等在网上搜集整理 版权为个人所有 This article includes some parts including text pictures and design Copyright is personal ownership 5PCzV 用户可将本文地内容或服务用于个人学习 研究或欣赏 以及 其他非商业性或非盈利性用途 但同时应遵守著作权法及其他相关 法律地规定 不得侵犯本网站及相关权利人地合法权利 除此以外 将本文任何内容或服务用于其他用途时 须征得本人及相关权利人 地书面许可 并支付报酬 jLBHr Users may use the contents or services of this article for personal study research or appreciation and other non commercial or non profit purposes but at the 个人收集整理 仅供参考 9 9 same time they shall abide by the provisions of copyright law and other relevant laws and shall not infringe upon the legitimate rights of this website and its relevant obligees In addition when any content or service of this article is used for other purposes written permission and remuneration shall be obtained from the person concerned and the relevant obligee xHAQX 转载或引用本文内容必须是以新闻性或资料性公共免费信息为 使用目地地合理 善意引用 不得对本文内容原意进行曲解 修改 并自负版权等法律责任 LDAYt Reproduction or quotation of the content of this article must be reasonable and good faith c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论