



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构与算法实验报告专业班级姓名学号实验项目 实验三 二叉树。实验目的1、掌握用递归方法实现二叉树的遍历。2、加深对二叉树的理解,逐步培养解决实际问题的编程能力。题目:(1)编写二叉树的遍历操作函数。先序遍历,递归方法 re_preOrder(TREE *tree)中序遍历,递归方法 re_midOrder(TREE *tree)后序遍历,递归方法 re_postOrder(TREE *tree)(2)调用上述函数实现先序、中序和后序遍历二叉树操作。算法设计分析(一)数据结构的定义要求用c语言编写一个演示程序,首先建立一个二叉树,让用户输入一个二叉树,实现该二叉树的便利操作。二叉树型存储结构定义为:typedef struct TNode char data;/字符型数据 struct TNode *lchild,*rchild;/左右孩子指针 TNode,* Tree; (二)总体设计程序由主函数、二叉树建立函数、先序遍历函数、中序遍历函数、后序遍历函数五个函数组成。其功能描述如下:(1)主函数:统筹调用各个函数以实现相应功能。 int main()(2)二叉树建立函数:根据用户意愿运用先序遍历建立一个二叉树。int CreateBiTree(Tree &T)(3)先序遍历函数:将所建立的二叉树先序遍历输出。 void PreOrder(Tree T)(4)中序遍历函数:将所建立的二叉树中序遍历输出。 void InOrder(Tree T)(5)后序遍历函数:将所建立的二叉树后序遍历输出。void PostOrder(Tree T)(三)各函数的详细设计:(1)建立一个二叉树,按先序次序输入二叉树中结点的值(一个字符),#表示空树。对T动态分配存储空间,生成根节点,构造左、右子树(2)编写先序遍历函数,依次访问根节点、左子结点、右子节点(3)编写中序遍历函数,依次访问左子结点、根节点、右子节点(4)编写后序遍历函数,依次访问左子结点、右子节点、根节点(5)编写主函数,调用各个函数,以实现二叉树遍历的基本操作。实验测试结果及结果分析(一)测试结果输入HAD#C#B#GF#E#(二)结果分析 调试程序时,出现了许多错误。如:将函数定义为有返回值类型时,总是忘记return 0语句,因为不需要返回一个实际值,所以返回0值很容易被忽略。对于递归调用的使用不熟练,翻书及上网查询后才会应用。实验总结这次实验主要是通过先序序列建立二叉树,和二叉树的先序、中序、后续递归遍历算法。通过这次实验,我巩固了二叉树这部分知识,从中体会理论知识的重要性。在做实验之前,要充分的理解本次实验的理论依据。例如进行二叉树的遍历的时候,要先理解各种遍历的特点。先序遍历是先遍历根节点,再依次先序遍历左右子树。中序遍历是先中序遍历左子树,再访问根节点,最后中序遍历右子树。而后序遍历则是先依次后续遍历左右子树,再访问根节点。 附录 实验程序代码遍历二叉树#include #include typedef struct TNode char data;/字符型数据 struct TNode *lchild,*rchild;/左右孩子指针 TNode,* Tree; /*建立二叉树函数*/ int CreateTree(Tree &T) /按先序序列创建二叉树 char data; scanf(%c,&data); if(data = #)/#表示空树 T = NULL; else /按先序序列输入二叉树 T = (Tree)malloc(sizeof(TNode); T-data = data; CreateTree(T-lchild); CreateTree(T-rchild); return 0; void Visit(Tree T) if(T-data != #) printf(%c ,T-data); /*先序遍历函数*/ void PreOrder(Tree T) if(T != NULL) Visit(T); PreOrder(T-lchild); PreOrder(T-rchild); /*中序遍历函数*/ void InOrder(Tree T) if(T != NULL) InOrder(T-lchild); Visit(T); InOrder(T-rchild); /*后序遍历函数*/ void PostOrder(Tree T) if(T != NULL) PostOrder(T-lchild); PostOrder(T-rchild); Visit(T); /*主函数*/ int main() Tree T; CreateTree(T); printf(先序遍历:n); PreOrder(T); printf(n); printf(中序遍历:n); InOrder(T); printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菌群移植生物标志物-第1篇-洞察及研究
- 油墨厂搅拌桨磨损细则
- 江苏省苏州市昆山市秀峰中学2025-2026学年上学期七年级9月月考数学卷(含答案)
- 2024-2025学年湖南省张家界市高二(下)期末物理试卷(含答案)
- 印刷厂油墨存储管理规定
- 手受伤后安全培训课件
- 社区结构预测-洞察及研究
- 手势小星星课件
- 中国银行新员工思想汇报模板图文
- 咨询工程师《项目决策分析与评价》考试题(附答案)
- ISO 22000-2018食品质量管理体系-食品链中各类组织的要求(2023-雷泽佳译)
- 卡巴斯基应急响应指南
- 理财规划大赛优秀作品范例(一)
- 2023年四川能投筠连电力招聘笔试参考题库附带答案详解
- 护理管理组织结构与设计
- 静配中心清洁消毒考核试题
- 一级烟草专卖管理师理论考试题库(含答案)
- 小学数学《分数除法》50道应用题包含答案
- 碳捕集、利用与封存技术课件
- 化工试生产总结报告
- 复句与单句的辨析课件
评论
0/150
提交评论