二叉树及其应用实验报告
13页1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划二叉树及其应用实验报告题目:班级:姓名:学号:得分:二叉树的应用举例信息一班冯琴琴1XX实验三二叉树的应用举例一、实验目的要求学生必须掌握二叉树的建立及先序、中序、后序三种遍历方式,在此基础上实现树的一些简单应用问题二、实验内容及步骤1.二叉链表的建立,先序遍历输入:字符串序列输出:先序序列处理方法:通过补虚结点,使二叉树中各实际结点均具有左右孩子,再对该二叉树按先序遍历进行输入。以字符串的形式:根、左子树、右子树定义一棵二叉树:1)空树以空白字符#表示2)只含一个根结点的二叉树以字符串A#表示3)一般的二叉树,以图2为例,以下列字符串表示:AB#C#D#4)无论先序、中序、后序遍历二叉树,遍历时的搜索路线是相同的:从根节点出发,逆时针沿二叉树外缘移动,对每个节点均途经三次。先序遍历:第一次经过节点时访问。中序遍历:第二次经过节点时访问。后序遍历:第三次经过节点时访问图1图22.统计二叉树中叶子结点的个数,计算二叉树的深度。输入:字符串序列输出:叶子结点的个数,二叉树的深度处
2、理方法:1)先序遍历二叉树。在遍历过程中查找叶子结点,并计数。由此,需在遍历算法中增添一个“计数”的参数,并将算法中“访问结点”的操作改为:若是叶子,则计数器增1。2)后序遍历二叉树。从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加1。由此,先分别求得左、右子树的深度,算法中“访问结点”的操作为:求得左、右子树深度的最大值,然后加1。程序:#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-1typedefcharTElemType;typedefintStatus;constintMAX_TREE_SIZE=100;constintTREEINCREMENT=10;typedefstructBiTNode/结点结构TElemTypedata;BiTNode*lchild,*rchild;/左右孩子指针BiTNode,*BiTree;StatusInitBiTree(BiTree&T)if(!(T=newBiTNode)returnERROR;T-lchild=
3、NULL;T-rchild=NULL;returnOK;/InitBiTreevoidCreateBiTree(BiTree&T)TElemTypee;cine;T-data=e;if(e!=#)InitBiTree(T-lchild);InitBiTree(T-rchild);CreateBiTree(T-lchild);CreateBiTree(T-rchild);voidvisit(TElemTypee)voidPreOrderTraverse(BiTreeT,void(*call)(TElemTypee)/先序遍历这里的函数指针调用输出函数call-调用if(T-data!=#)voidInOrderTraverse(BiTreeT,void(*call)(TElemTypee)/中序遍历if(T-data!=#)voidPostOrderTraverse(BiTreeT,void(*call)(TElemTypee)/后序遍历if(T-data!=#)voidCountLeaf(BiTreeT,int&count)if(T-data!=#)PostOrderTraverse(
4、T-lchild,visit);PostOrderTraverse(T-rchild,visit);call(T-data);InOrderTraverse(T-lchild,visit);call(T-data);call(T-data);PreOrderTraverse(T-lchild,visit);PreOrderTraverse(T-rchild,visit);coutrchild,visit);if(T-lchild-data=#)&(T-rchild-data=#)count+;/对叶子结点计数CountLeaf(T-lchild,count);CountLeaf(T-rchild,count);intBiTreeDepth(BiTreeT)intldepth,rdepth,depth;if(T-data=#)depth=0;elseldepth=BiTreeDepth(T-lchild);rdepth=BiTreeDepth(T-rchild);voidmain()BiTreeT;intdepth,count=0;InitBiTree(T);depth=1+(ldept
《二叉树及其应用实验报告》由会员bin****86分享,可在线阅读,更多相关《二叉树及其应用实验报告》请在金锄头文库上搜索。
高考语文第一轮总复习 同步测试卷(五)实用类文本阅读课件
高考语文第一轮总复习 写作总论课件
高考语文大一轮复习 第5部分 论述类文本阅读 第一节 理解文中重要词句含意2大考点课件
高考语文大一轮复习 第3部分 古代诗文阅读 专题三 默写常见的名句名篇课件
高考语文大一轮复习 第3部分 古代诗文阅读 专题二 第四节 鉴赏诗歌的艺术技巧课件
高中物理 第四章 力与运动 第一节 伽利略的理想实验与牛顿第一定律课件 粤教版必修1
高中物理 第三章 研究物体间的相互作用 第三节 力的等效和替代课件 粤教版必修1
高中物理 第一章 运动的描述 第五节 速度变化的快慢 加速度课件 粤教版必修1
高中物理 第2章 能的转化与守恒章末复习方案与全优评估课件 鲁科版必修2
高中物理 42 实验:探究加速度与力、质量的关系课件 新人教版必修1
高中物理 31《受力分析》课件 新人教版必修1
高中物理 22 匀变速直线运动的速度与时间的关系课件 新人教版必修1
高中物理 14 用打点计时器测速度课件 新人教版必修1
高中数学第一章导数及其应用1_5_1曲边梯形的面积课件新人教a版选修2_2
高中数学 第二章 随机变量及其分布 24 正态分布课件 新人教a版选修2-31
高中数学 第四章 圆与方程 42_1 直线与圆的位置关系课件 新人教a版必修21
高中数学 第二章 随机变量及其分布 21_2 离散型随机变量的分布列(2)课件 新人教a版选修2-31
高中数学 第二章 统计 23_2 两个变量的线性相关课件 新人教a版必修3
高中数学 第二章 统计 22_1 用样本的频率分布估计总体分布课件 新人教a版必修3
高中数学 第二章 统计 21_3 分层抽样课件2 新人教a版必修31
2024-04-30 5页
2024-04-30 5页
2024-04-30 2页
2024-04-30 5页
2024-04-30 2页
2024-04-30 1页
2024-04-30 45页
2024-04-30 2页
2024-04-30 3页
2024-04-30 5页