判断完全二叉树.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
判断完全二叉树

课程设计报告 课程名称:数据结构课程设计 设计题目: 完全二叉树判断 系 别: 计算机系 专 业: 组 别: 第三组 学生姓名: 学 号: 起止日期: 指导教师: 目 录 第一章 需求分析 2 1.1课程设计任务及要求 2 1.2课程设计思想及开发环境 2 第二章 概要设计 3 2.1 总体方案 3 2.2 功能模块说明 3 第三章调试与操作说明 4 第四章课程设计总结与体会 4 第五章致谢 7 第六章参考文献 7 附录(源代码) 7 第一章 需求分析 1.1课程设计任务及要求 该课程设计的题目为:完全二叉树的判别。也就是对于输入的 二叉树进行判定,看是否为完全二叉树。 为实现此次课程设计的完成,对程序设计作了相应的定义与限制。首先,为了输入的简洁,将树的结点树不大于20;其次,对于二叉树的输入就按照前序遍历的顺序进行输入;最后,对于程序的测试,应该从正反两面进行测试,即输入一个是完全二叉树和一个不是完全二叉树的。 由于输入二叉树时,对于不是完全二叉树的,有的结点会没有左子树或右子树,甚至两子树都没有,为跟好的表示没有子树的情况,在此次程序设计中用“.”来表示 1.2课程设计思想及开发环境 编写语言: C语言 开发工具: Visual C++ Visual Studio 6.0 VC++是微软公司开发的一个IDE(集成开发环境)。学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识, VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大缺点是开发效率不高。 对于二叉树的构造,可以运用插入建立,还可以用递归建立。在此次设计中运用的是递归建立。运用队列的进队函数进行对二叉树的结点的输入。对于进队的第一个数据为二叉树的根结点,如果为非空,则继续输入第二个进队元素,将其设置为该根结点的左子树,然后将该左子树作为新的根结点,依次进行到下一层的结点,直至到达叶节点(即既没有左子树也没有右子树),然后对于这以后进队的元素则作为右子树,用相同的方法建树。 第二章概要说明 2.1判定是否为完全二叉树的算法 判定完全二叉树,首先要知道什么是完全二叉树,对完全二叉树定义以前,要明白满二叉树的定义。一棵深度为k且有2k-1个结点的二叉树称为满二叉树。对满二叉树的你借点进行连续编号,约定编号从根结点起,自上而下,自左而右。由此引出完全二叉树的定义。深度为k的,右n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树的编号从1至n的结点一一对应时,称之为完全二叉树。所以对于二叉树的判定,假如某一结点有右子树但没有左子树则该树不是完全二叉树。如果某一结点没有右子树或没有左子树,但是其后的结点有左子树或右子树,则该树不是完全二叉树。根据这种判定方法,可以判定其是不是完全二叉树。 2.2功能模块说明 程序各模块之间的关系图 图1程序模块关系图 第三章调试与操作说明 3.1编码设计 编码建立上一步详细设计结果的基础上,对编码进行调试。 3.2调试 调试一向是我感觉很头疼的一个环节,因为程序中会因为各种各样的原因出现很多错误。所以在调试前应该做好充分的准备,比如说准备一本高级语言程序设计的教材以及先建立好工程和文件。 在设计中,我使用的是Visual C++ 6.0为平台对程序进行调试。调试之前就是要把源程序输入进去,我建立了一个.c文件。 输完源代码后对代码进行编译,出现了诸多问题。比如说,会在语句后面丢掉分号、输入的标点符号不是英语输入中的而是中文输入中的、语法错误、函数调用不匹配的问题等等。对于这些错误需要相当大的耐性,但是都不难解决,只要细心的检查程序就可以更正了。可以在调试错误中找到出错的地方,根据错误信息提示进行改错。对于有的错误提示并不明白是什么错误,也是通过查资料书和在网络上搜索到底是什么错误,在寻求解决方法。 在编译没有错误之后开始组建。 在组建出现了内存泄露,这是在编程中经常出现的问题。产生这种问题的原因也有很多种。大多数情况下就是指针出现错误。于是我就开始检查程序中使用到指针的地方,进行检测

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档