没有合适的资源?快使用搜索试试~ 我知道了~
数据结构与算法课程设计.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 147 浏览量
2022-07-12
15:27:07
上传
评论
收藏 478KB PDF 举报
温馨提示


试读
11页
数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf数据结构与算法课程设计.pdf
资源推荐
资源详情
资源评论
















数据结构与算法课程设计
一、课程设计的目的、要求和任务
本课程设计是为了配合《数据结构》课程的开设,通过设计完整的程序,使
学生掌握数据结构的应用、算法的编写等基本方法。
1.课程的目的
(1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结
构、存储结构和操作实现算法,以及它们在程序中的使用方法。
(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软
件设计的能力。
(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设
计的基本能力;
2.课程的基本要求与任务
(1)巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。
(2)培养学生自学参考书籍,查阅手册、图表和文献资料的能力。
(3)通过实际课程设计,初步掌握简单软件的分析方法和设计方法。
(4)了解与课程有关的工程技术规范,能正确解释和分析实验结果。
(5)题目具有足够的工作量。
二、课程设计的一般步骤
(1)选题与搜集资料:每个学生在参考选题中选择 1 道课题。
(2)分析与概要设计:根据搜集的资料,进行程序功能与数据结构分析,并
选择合适的数据结构、并在此基础上进行实现程序功能的算法设计。
(3)程序设计:运用掌握C/Java 语言编写程序,实现所编程序的各个模块功
能。
(4)调试与测试:调试程序,并记录测试情况。
(5)完成课程设计报告。
(6)验收与评分:指导教师对每个同学的开发的系统进行综合验收。
三、课程设计报告的规范
课程设计报告(不少于 12 页)要求规范书写,应当包括如下 8 个部分:
(1)问题描述:描述要求编程解决的问题。
(2)基本要求:给出程序要达到的具体的要求。
(3)算法思想:描述解决相应问题算法的设计思想。
(4)模块划分:描述所设计程序的各个模块(即函数)功能。
(5)数据结构:给出所使用的基本抽象数据类型,所定义的具体问题的数据类
型,以及新定义的抽象数据类型。
(6)源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注
释每个函数参数的含义和函数返回值的含义。
(7)测试数据:设计测试数据,或具体给出测试数据。要求测试数据能全面

地测试所设计程序的功能。
(8)测试情况:给出程序的测试情况,并分析运行结果
四、时间安排
设计时间为两周,源程序和课程设计报告于 20 周周五前上交。
五、成绩评定标准
(1)学生编写的实际软件和运行结果,占总成绩 50%;
(2)设计报告,占总成绩 50%。
数据结构课程设计参考题目
类型一 线性表、栈、队列与递归算法设计
1.约瑟夫环
[问题描述]
约瑟夫(Joeph)问题的一种描述是:编号为 1,2,„,n 的 n 个人按顺时针方向围坐一圈,
每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值 m,从第一个人开始按
顺时针方向自 1 开始顺序报数,报到 m 时停止报数。报 m 的人出列,将他的密码作为新的 m
值,从他在顺时针方向上的下一个人开始重新从 1 报数,如此下去,直至所有人全部出列为
止。试设计一个程序求出出列顺序。
[基本要求]
利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
[测试数据]
m 的初值为 20;密码:3,1,7,2,4,8,4(正确的结果应为 6,1,4,7,2,3,5)。
[实现提示]
程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。设n≤30。
2、长整数运算
[问题描述]
设计一个程序实现两个任意长的整数求和运算。
[基本要求]
利用双项循环链表实现长整数的存储,每个结点含一个整型变量。任何整型变量的范围
是-(2
15
-1)~(2
15
-1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间
用逗号隔开。

[测试数据]
(1) 0;0;应输出“0”。
(2) -2345,6789;-7654,3211;应输出“-1,0000,0000”。
(3) -9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。
(4) 1,0001,000;-1,0001,0001;应输出“0”。
(5) 1,0001,0001;-1,0001,0000;应输出“1”。
[实现提示]
(1) 每个结点中可以存放的最大整数为 2
15
-1=32767,才能保证两数相加不会溢出。但
若这样存,即相当于按 32768 进制数存,在十进制数与 32768 进制数之间的转换十分不方便。
故可以在每个结点中仅存十进制数的 4 位,即不超过 9999 的非负整数,整个链表视为万进制
数。
(2) 可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结点数目。
相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的
一种方法。不能给长整数位数规定上限。
[选作内容]
修改上述程序,使它在整型量范围是-(2
n
-1)~(2
n
-1)的计算机上都能有效地运行。其
中,n 是由程序读入的参量。输入数据的分组方法可以另行规定。
3、多项式链式存储结构及其代数运算
[问题描述]
设计并建立一个链式存储分配系统来表示和操作多项式。为了避免对零和非零多项式进
行不同的处理,使用带头结点的循环链表。为了充分利用多项式中不再使用的结点,维护一
个可用空间表 avail,把不再使用的多项式的结点链入其中。当需要一个新结点时,就查看这个
单链表 avail。如果表非空,那么可以使用它的一个结点。只有当该表为空时,才使用动态存
储分配来创建新结点。
[基本要求]
设计多项式的存储结构,编写并测试下列函数:
a) get_node 和 ret_node,从/向可用空间表申请和插入一个多项式结点。
b) pread,读取一个多项式,并将其转换成循环存储表示。返回指向该多项式的头结点的
指针。
c) pwrite,输出多项式,采用能够清楚显示的形式。
d) padd,计算 d = a+b。不改变 a 和 b。
e) psub,计算 d = a-b。不改变 a 和 b。
f) pmult,计算 d = a*b。不改变 a 和 b。
g) eval,计算多项式在某点 a 的值,其中 a 是一个浮点型常量。返回结果为浮点数。
h) perase,把存储表示为循环链表的多项式返还给可用空间表。
[实现提示]
为了进一步简化加法算法,把多项式的头结点的指数域设为-1。
4、稀疏矩阵的完全链表表示及其运算
剩余10页未读,继续阅读
资源评论


春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
