您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 建立二叉树-并对树进行操作数据结构课程设计论文
0学生课程设计(论文)题目:建立二叉树,并对树进行操作学生姓名:0学号:0所在院(系):计算机学院专业:0班级:0指导教师:0职称:02009年12月30日攀枝花学院教务处制1攀枝花学院本科学生课程设计任务书题目建立二叉树,并对树进行操作1、课程设计的目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)基本功能要求:a)利用完全二叉树的性质建立一棵二叉树。b)统计数叶子结点的个数。c)求二叉树的深度。测试数据:(1)(2)3、主要参考文献[1]《数据结构》(C语言版),严蔚敏,清华大学出版社,2003.[2]《数据结构题集》,严蔚敏,清华大学出版社,2005.[3]《数据结构》(C语言版),刘大有,高等教育出版社,2004.[4]《DataStructurewithC++》,WilliamFord.WilliamTopp,清华大学出版社,2003.4、课程设计工作进度计划第1天完成方案设计与程序框图第2、3天编写程序代码第4天程序调试分析和结果第5天课程设计报告和总结指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。ACDBFEABCHGFEID2课程设计(论文)指导教师成绩评定表题目名称建立二叉树,并对树进行操作评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名:年月日3目录摘要.............................................................................................................................................11引言..............................................................................................................................................31.1设计目标...........................................................................................................................31.2相关知识..........................................................................................................................32总体设计.....................................................................................................................................72.1.主要数据存储结构设计...................................................................................................72.2模块的划分及其功能........................................................................................................73详细设计.....................................................................................................................................83.1程序流程图........................................................................................................................83.2存储结构的建立由scanf()函数实现.........................................................................83.3重要函数...........................................................................................................................93.4程序相关分析....................................................................................................................93.5结构体和全局变量定义....................................................................................................93.6程序清单.........................................................................................................................104测试数据及结果分析............................................................................................................165总结............................................................................................................................................186参考文献...................................................................................................................................191摘要《数据结构》是一种基于C程序建立的一种专业的算法技术,是一门基础的结构性知识,是为了解决抽象问题设计的一种数学模型的算法,然后进行运行,调试,以达到目的。这是一门基础课,在日常生活、学习中,运用的范围非常广泛,就要求大学生都能掌握。本次课程设计的题目是“建立二叉树,并对树进行操作”,该题目的实现要求是建立二叉树,统计叶子节点个数,求二叉树的深度,本程序分为6大模块。二叉树的建立链式存储结构,求叶子节点的个数计算,前序遍历,中序遍历,后序遍历,深度求解。二叉树是树形结构的一个重要的类型,二叉树是n(n=0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵会不相交的、分别陈作这个根的坐子树和右子树的二叉树组成。二叉树的存储结构和算法比较简单,特别适合计算机处理。即使一般形势的树也可简单的转换为二叉树。二叉树的顺序存储结构是把二叉树的所有结点,按照一定的次序顺序,存储到一片连续的存储单元中。遍历二叉树就是沿某有前序遍历,中序搜索路径周游二叉树,对树中每个结点访问一次且仅访问一次。在遍历方案中主要前序遍历,后序遍历。本文主要介绍了本课程设计的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块的设计与实现方法。关键字:C程序,二叉树,函数21引言1.1设计目标二叉树是形象的说既树中每个节点最多只有两个分支,它是一个重要的数据类型。可以运用于建立家谱,公司所有的员工的职位图,以及各种事物的分类和各种机构的职位图表。二叉树是通过建立一个链式存储结构,达到能够实现前序遍历,中序遍历,后序遍历。以及能够从输入的数据中得知二叉树的叶子节点的个数,二叉树的深度。在此,二叉树的每一个结点中必须包括:值域,左指针域,右指针域。1.2相关知识1、statusCreateBiTree(BiTree*T){//先序创建二叉树TelemTypech;scanf(%c,&ch);if(ch==ENDFLAG)*T=NULL;else{if(!(*T=(BiTNode*)malloc(sizeof(BiTNode)))){printf(\nOutofspace.);getch();exit(0);}(*T)-data=ch;//生成根结点CreateBiTree(&((*T)-lchild));//左子树CreateBiTree(&((*T)-rchild));//右子树}returnOK;}TelemType的作用是输入n各任意的字符,而且在输入n个字符后,必须输入N=1个0,才能够得到本程序所有能够实现的功能。T=Null是将二叉树置为空。4if(!(*T=(BiTNode*)malloc(sizeof(BiTNode))))//采用动态申请结点的方式,不仅实现起来方便,而且还节省大量的存储空间。(*T)-data=ch;//生成根结点CreateBiTree(&((*T)-lchild));//左子树CreateBiTree(&((*T)-rchild));//右子树2、前序遍历:先访问根结点,再访问左子树,最后访问右子树。具体实现如下:statusPreOrderTraverse(BiTreeT){if(T){printf(%c,T-data);PreOrderTraverse(T-lchild);PreOrderTraverse(T-rchild);}returnOK;}3、求叶子结点的个数:用m变量表示叶子结点的总个数。当树为空是此时讨论叶子结点个数无意义;当树非空时分为:一、左右子树都不存在时,m自加1,m的值就为1,即叶子结点的个数为1;二、
本文标题:建立二叉树-并对树进行操作数据结构课程设计论文
链接地址:https://www.777doc.com/doc-6222415 .html