版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上二、唯一的确定一棵二叉树需求分析该程序的主要功能是根据给定的遍历二叉树的前序序列和中序序列,唯一构造出一棵二叉树,并输出该二叉树的后序序列,同时用凹入法打印该二叉树。设计1. 设计思想 程序中的值采用二叉树的存储结构。(1)设计两个字符数组Pre和In存放前序序列和中序序列;(2)根据定义,前序序列中第一个元素一定是树根,在中序序列中该元素之前的所有元素一定在左子树中,其余元素则在右子树中。所以,首先从数组Pre中取出第一个元素Pre0作根结点,然后在数组In中找到In0,以它为界,在其前面的是左子树中序序列,在其后面的是右子树中序序列;(3)若左子树不为空,沿前序序
2、列向后移动,找到左子树根结点,转(2);(4)左子树构造完毕后,若右子树不为空,沿前序序列向后移动,找到右子树根结点,转(2);(5)前序序列中各元素取完则二叉树构造完毕。在二叉树构建的过程中使用了函数递归的方式。2. 概要设计程序中最主要的函数即为二叉树的构建函数BuildBiTree()函数声明方式void BuildBiTree(BiTreeNode* root,DataType Pre,DataType In,int flag,int m,int n); 其中BiTreeNode* root为将要构建树的根节点;DataType Pre和DataType In为存储前序序列和中序序列的
3、数组;int flag为标记数组,它用来区分In数组中的元素是否已经被加入二叉树中,标记为0时为未加入二叉树,标记为1时表示以加入二叉树;int m为即将加入二叉树的元素区间的下界;int m为即将加入二叉树的元素区间的上界。结点操作函数 Visit()函数声明方式:void visit(DataType item);在进行二叉树的遍历时用来对结点进行一系列的操作。打印二叉树函数 PrintBiTree()函数声明方式:void PrintBiTree(BiTreeNode* root,int n);打印二叉树函数同样采用递归的形式,用凹入法对二叉树进行打印输出。3. 详细设计算法开始阶段先是
4、输入二叉树的前序序列和中序序列,然后调用构建二叉树函数BuildBitree(),并在函数内部进行递归调用进行二叉树的构建。构建完毕后,分别调用二叉树的前序、中序、后序遍历函数遍历二叉树并输出遍历结果,最后调用PrintBiTree()函数用凹入法打印输出二叉树。我个人觉得比较巧妙的一个地方是设立了一个全局变量P来存储Pre数组的下标,即即将构建的子树的结点,在使用递归构建二叉树的时候不会因函数的结束而销毁变量。4. 调试分析这个程序应该算是我耗时最久的一个了,最初的问题是在碰到了构建二叉树函数的递归的栈溢出,调试的时候出现递归函数无法进入的情况从而以我目前的调试水平无法调试,后来又从头分析了
5、一边函数才发现是某个循环的错误。解决这个问题后又出现了输出结果不正确的问题,经过调试后才发现是之前对算法的理解出了很大偏差,原因是只考虑了构造元素区间的上界而未考虑下界。所以对函数的结构做了一系列的改变,最终取得成功。经分析,该程序的时间复杂度为O(lbn),空间复杂度为O(lbn)。虽然这个程序花费了我比较长的时间,但是它让我明白了调试的重要性,同时也重新熟悉了调试的方法,对我的编程技能有比较大的促进作用。在完成了这次实习之后,内心的喜悦之情无法言表。5. 用户手册 接下来介绍一下该程序的使用方法:(1) 编译运行程序;(2) 按提示输入要构建的二叉树的结点(以PPT上测试数据为例);(3) 按提示输入该二叉树的前序序列;(4) 按提示输入该二叉树的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国太阳能草坪灯行业运行现状及发展前景预测报告
- 2025-2030年中国全自动燃烧器市场未来发展状况及投资规划研究报告新版
- 2025-2030年中国五谷杂粮行业市场需求状况及发展战略研究报告
- 2025-2030年中国主焦煤产业前景趋势与投资潜力分析报告
- 2025-2030年中国PVC粒料产业前景趋势调研及发展战略分析报告
- 2024年饮料罐铝板项目投资申请报告代可行性研究报告
- 2024年中国移动智能硬件评测报告
- 二零二五年度房产车辆转让与子女创业初期资金支持合同2篇
- 二零二五版深基坑地质安全监测专项合同正规范3篇
- 二零二五年度综合性物业安保服务管理及应急预案合同3篇
- 雾化吸入疗法合理用药专家共识(2024版)解读
- 寒假作业(试题)2024-2025学年五年级上册数学 人教版(十二)
- 银行信息安全保密培训
- 市政道路工程交通疏解施工方案
- 2024年部编版初中七年级上册历史:部分练习题含答案
- 拆迁评估机构选定方案
- 床旁超声监测胃残余量
- 上海市松江区市级名校2025届数学高一上期末达标检测试题含解析
- 综合实践活动教案三上
- 《新能源汽车电气设备构造与维修》项目三 新能源汽车照明与信号系统检修
- 2024年新课标《义务教育数学课程标准》测试题(附含答案)
评论
0/150
提交评论