资源描述:
《树与二叉树实验心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划树与二叉树实验心得 《数据结构与数据库》 实验报告 实验题目二叉树的基本操作及运算 学院:化学与材料科学学院 专业班级:09级材料科学与工程系PB 姓学 邮名:李维谷号:PB箱:liwg@指导教师:贾伯琪 实验时间:XX年10月17日 一、需要分析 问题描述: 实现二叉树的建立,并实现先序、中序、后序和按层次遍历,计算叶子结点数、树的深度、树的宽度,求树的非空子孙结点个数、度为2的结点数目、度为2的结点数目,以及二叉树常用运算。
2、 问题分析: 二叉树树型结构是一类重要的非线性数据结构,对它的熟练掌握是学习数据结构的基本要求。由于二叉树的定义本身就是一种递归定义,所以二叉树的一些基本操作也可采用递归调用的方法。处理本问题,我觉得应该: 1、建立二叉树;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 2、通过递归方法来遍历二叉树; 3、通过队列应用来实现对二叉树的层次遍历; 4、借用递归方
3、法对二叉树进行一些基本操作,如:求叶子数、树的深度宽度等; 5、运用广义表对二叉树进行广义表形式的打印。 算法规定: 输入形式:为了方便操作,规定二叉树的元素类型都为字符型,允许各种字符类型的输入,没有元素的结点以空格输入表示,并且本实验是以先序顺序输入的。 输出形式:通过先序、中序和后序遍历的方法对树的各字符型元素进行遍历打印,再以广义表形式进行打印。对二叉树的一些运算结果以整型输出。 程序功能:实现对二叉树的先序、中序和后序遍历,层次遍历。计算叶子结点数、树的深度、树的宽度,求树的非空子孙结点个数、度为2的结点数目、度为2的结点数目。对二叉树的某
4、个元素进行查找,对二叉树的某个结点进行删除。 测试数据:输入一:ABC□□DE□G□□F□□□,查找5,删除E 预测结果:先序遍历ABCDEGF 中序遍历CBEGDFA后序遍历CGEFDBA 层次遍历ABCDEFG目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 广义表打印A,F))) 叶子数3深度5宽度2非空子孙数6度为2的数目2度为1的数目2查找5,成功,查
5、找的元素为E 删除E后,以广义表形式打印A)) 输入二:ABD□□EH□□□CF□G□□□,查找10,删除B预测结果:先序遍历ABDEHCFG 中序遍历DBHEAGFC后序遍历DHEBGFCA 层次遍历ABCDEFHG 广义表打印A 叶子数3深度4宽度3非空子孙数7度为2的数目2度为1的数目3查找10,失败。 删除B后,以广义表形式打印A)) 二、概要设计 程序中将涉及下列两个抽象数据类型:一个是二叉树,一个是队列。 1、设定“二叉树”的抽象数据类型定义: ADTBiTree{ 数据对象D:D是具有相同特性的数据元素的集合。 数据关系
6、R: 若D??,则R??,称BiTree为空二叉树; 若D??,则R??H?,H是如下二元关系:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; 若D??root???,则存在D??root???Dl,Dr?,且Dl?Dr??; 若Dl??,则Dl中存在唯一的元素xl,?root,xl??H,且存在D
7、l上的关系 Hl?H;若Dr??,则Dr中存在唯一的元素xr,?root,xr??H,且存在Dr上的 关系Hr?H;H??root,xl?,?root,xr?,Hl,Hr; ?Dl,?Hl??是一棵符合本定义的二叉树,称为根的左子树,?Dr,?Hr??是一棵符合本 定义的二叉树,称为根的有字树 基本操作: CreateBiTree&T) 操作结果:按照T的定义构造一个二叉树。 ?? BiTreeDepth(&T) 初始条件:二叉树T已存在。 操作结果:返回T的深度。 BiTreeWidth(&T) 初始条件:二叉树T已存在。 操作结
8、果:返回T的宽度。 PreOderT