欢迎来到天天文库
浏览记录
ID:18215927
大小:131.00 KB
页数:13页
时间:2018-09-15
《数据结构课程设计-10计-21011001024-梁志才new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、广东工业大学华立学院课程设计(论文)课程名称数据结构题目名称二叉树非递归算法学生学部(系)艺术设计与计算机专业班级10计算机1班学 号21011001024学生姓名梁志才指导教师程东胜2011年12月05日9广东工业大学华立学院课程设计(论文)任务书题目名称二叉树非递归算法学生学部(系)艺术设计与计算机学部专业班级10计算机1班姓名梁志才学号21011001024一、课程设计(论文)的内容1.创建二叉树2.二叉树的非递归算法(前、中、后)二、课程设计(论文)的要求与数据①需求分析②概要设计③详细设计④编程实现⑤测试:提供数个测试用例⑥符合撰写规范设计的必要说明文档三、课程设计(论文
2、)应完成的工作(1)根据要求完成课题;(2)程序书写符合规范,程序设计完善;(3)对程序进行初步的测试;9(4)程序运行结果和过程的界面截图;(5)根据设计规范撰写报告并按时提交;(6)设计内容用A4纸打印并按要求装订。四、课程设计(论文)进程安排序号设计(论文)各阶段内容地点起止日期1搜集资料图书馆12.05-12.102需求分析图书馆12.10-12.143概要设计图书馆12.14-5.174详细设计图书馆12.17-12.205程序实现图书馆12.20-12.296系统测试、运行机房12.19-12.307提交报告12.30五、应收集的资料及主要参考文献[1]朱战立编著.数据
3、结构(使用C语言(第4版)).北京:电子工业出版社,2009.1发出任务书日期:2011年12月12日指导教师签名:计划完成日期:2011年12月30日教学单位责任人签章:9目录1序言12需求分析12.1需求分析12.2功能分析13概要设计14详细设计25程序实现3总结6参考文献79开始1序言本课程设计旨在熟悉与了解二叉树非递归算法的建立以其应用,培养学生独立思考、综合应用所学有关相应知识的能力,使学生巩固课程所学的内容,掌握工程软件设计的基本方法,强化上机动手编程能力闯过理论与实践相结合的难关。同时也培养学生的创新和创造能力,使学生获得科学研究的基础训练,为以后的学习打下坚实的基
4、础。2需求分析2.1需求分析树形结构是一类重要的非线性数据结构,树中节点之间具有明确的层次关系,并且结点之间有分支,它非常类似于实际的树。树形结构在客观世界中大量存在,如行政组织机构和人类社会的家谱关系等都可用树形结构形象地表示。在计算机应用领域,树结构也被广泛应用,例如在编译程序中,用树形结构来表示图形结构来表示源程序的语法结构;在数据库系统中,用树形来组织信息;在计算机图形学中,用树结构来表示图像关系等。在二叉树上无论采用那种遍历方法,都能够访问遍数中的所有结点。由于访问结点的顺序不同,前序遍历和后序遍历都很难达到设计的要求;但采用后序遍历二叉树是可行的,因为后序遍历是最后访问
5、根节点,按这个顺序将访问过的结点存储到到一个顺序栈中,然后再输出即可。另外,为了加深对遍历二叉树的理解,在这里顺便把实现二叉树的非递归遍历概念也加入到这个设计要求中。2.2功能分析创建二叉树后序遍历中序遍历先序遍历非递归非递归非递归结束3概要设计9输入一个二叉树,利用栈结构建立二叉链表树,利用栈结构依次将结点入栈、出栈实现二叉树的非递归遍历算法。例如:abd##e##cf##g##建立下图所示二叉树acbgfde4详细设计1.二叉树数据的类型定义structtree{chardata;structtree*lchild;strudetree*rchild;};2.主要模板设计①创建
6、二叉树treptrbuild(treptrt){charc;c=getchar();if(c=='#'){t=NULL;}else{t=(treptr)malloc(sizeof(structtree));t->data=c;t->lchild=build(t->lchild);t->rchild=build(t->rchild);}returnt;}②入栈voidpush(stackptrs,treptrt){*(s->top++)=t;}③弹出栈顶元素treptrpop(stackptrs){treptrt;t=*(--(s->top));returnt;}④非递归先序实现vo
7、idpreorder(treptrt){if(!t)return;else9{printf("%c",t->data);preorder(t->lchild);preorder(t->rchild);}}⑤非递归中序实现voidinorder(treptrt){treptrs[100];inttop=0;while(t
8、
9、top){while(t){s[++top]=t;t=t->lchild;}if(top){putchar(s[top]->data);t=s[to
此文档下载收益归作者所有