- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计指导
课程设计名称:数据结构课程设计 指导老师:
课程设计周(时)数:周
指导方式:集体辅导与个别辅导相结合
课程设计教材及主要参考资料:
1、《数据结构》,严蔚敏编著,清华大学出版社
一、课程设计教学目的及基本要求
1、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
1、问题定义:根据设计题目的要求,充分地分析和理解问题,限制条件对问题描述中涉及的操作对象定义相应的数据类型和各抽象数据类型写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),,:按照以数据结构为中心的原则划分模块定义主程序画出模块之间的调用关系图在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,详细设计:各个主要模块的算法定义。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,伪码写出函数的算法程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解,使程序中逻辑概念清楚
6、程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析编写课程设计报告
(1) 问题描述
设计数据结构完成一个学院学生相关信息的存储,并在此基础上编写算法实现学生成绩管理。
(2) 课程设计目的
应用线性数据结构存储信息,并能够合理的应用排序及查找算法,学会应用散列法。
(3) 基本要求
一个学院由若干个班组成;所有学生修相同的考试课和考查课。
管理系统能够实现:学生加入,学生毕业,学生成绩统计,学生查询,学生排名等管理操作。(要考虑考试课和考查课的比重关系)
为方便查找,要求针对学生姓名进行散列法查找。
管理系统应有完整地界面(最好是图形化界面)。
(4) 实现提示
主要集中在散列函数的构造和冲突的解决上。
迷宫的生成与路由
(1) 问题描述
设计算法生成一个N×M(N行M列)的迷宫,并完成迷宫的组织和存储。实现两种不同的迷宫路由算法:广度优先,深度优先算法。并比较(包括理论和实验)三种方法的时空复杂性。
(2) 课程设计目的
理解栈的应用,理解深(广)度优先思想,理解问题的理论和实验分析。
(3) 基本要求
① N和M是用户可配置的,缺省值为50和50。
② 迷宫的入口和出口分别在第0行和第N-1行上,随机选择。
③ 生成的迷宫要求是连通的。
④ 实现图形化界面(可用VC++,也可用C语言的图形库)。
⑤ 三种方法的试验比较应该在多个迷宫实例上(尤其可以选一些特定的迷宫)。
(4) 实现提示
多考虑栈上的运算。
算法:所有的格子均为黑点(表示此路不通),然后随机生成白点,每生成5个白点就走一次迷宫直到能够走通迷宫为止,并记载出口的位置(如有n个出口,则将封闭n-1个出口)。
.“随机漫步”问题
(1) 问题描述
有一类问题总称为“随机漫步”(random walk)问题,这类问题长久以来吸引着数学界的兴趣。所有这些问题即使是最简单的解决起来也是极其困难的。而且它们在很大程度上还远没有得到解决。一个这样的问题可以描述为:
在矩形的房间里,铺有n×m块瓷砖,现将一只(醉酒的)蟑螂放在地板中间一个指定方格里。蟑螂随机地从一块瓷砖“漫步”到另一块瓷砖(可能是在找一片阿司匹林)。假设它可能从其所在的瓷砖移动到其周围八块瓷砖中的任何一个(除非碰到墙壁),那么它把每一块瓷砖都至少接触一次将花费多长时间?
虽然这个问题可能很难用纯粹的概率技术来解决,但是使用计算机的话却十分容易。使用计算机解决此问题的技术称为“模拟”。这种技术广泛应用于工业中,用来预测运输流量,存货控制等等。该问题可采用如下方法进行模拟:
用一个n×m数组作为计数器来表示蟑螂到达每一块瓷砖的次数,每个数组单元的初始值均置为零。蟑螂在地板上的位置用坐标(ibug,jbug)表示。蟑螂的八种可能移动用在位置(ibug + imove[k],jbug + jmove[k])的瓷砖表示,其中0≤k≤7,并且
imove[0] = -1 jmove[0] = 1
imove[1] = 0 jmove[1] = 1
imove[2] =
文档评论(0)