- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计软工班
《数据结构课程设计》
2014级 软工3班
说明:
(1) 根据个人情况,在下面的题目中选择至少6道完成才能记为通过。
(2) 程序要定期完成。原则上在后一章讲完之后,前一章的上机程序不再检查。比如,第三章讲完后,第二章的程序应全部检查完毕,之后不再检查。需要延长的会统一通知。
(3) 所有题目均应在机房检查,随机提问。程序完成质量按正确性、程序风格和界面来评价。
(4) 所有程序的电子版都要上交,请自己保存好。期末时用“学号姓名”格式建立一个文件夹,程序用题号命名,发到565354的QQ邮箱。
(5) 每人至少选择一个带*的题目完成(1.3除外),并完成一个实验报告,与电子版程序一并上交。报告模板附后。
第一章 实验
(任选其一,1.3加分)
1.1设计一个程序,统计一个班(最多有50人)的学生成绩,要求能实现如下四个功能:
(1) 由键盘或文件输入每个学生的学号和四门课程的成绩;
(2) 计算每个学生的平均成绩和总成绩;
(3) 按总成绩从高到低排名,并按名次输出每个学生的情况,包括:
学号,各科成绩,平均成绩,总成绩,排名
(4) 由键盘输入课程号,输出该课程成绩在90分(含90分)以上且总分在前3名的学生情况,要求能多次查询。(请采用结构体数据类型,并采用模块化结构实现)
1.2每个城市信息由城市名(字符串)和位置坐标组成(x,y)。设计实现一程序,完成如下功能:
(1)从键盘或文件输入各城市信息
(2)按城市名字非递减排序后输出
(3)输入某个位置信息,查询该位置的城市名称,要求能多次查询。
1.3* 挖坑是一种比较流行的游戏,编写程序模拟挖坑的发牌程序。
游戏介绍:挖坑是三人游戏,一副牌去掉大小王不用,共52张牌,发牌时每人发16张牌,剩余4张为底牌。最后由三人叫分,谁的分多,4张底牌全部归谁。
提示: 回想一下我们现实生活中如何进行挖坑的?首先需要有一副扑克牌,然后经过洗牌(洗的越均匀越好),再顺次发给个人。因此需要一个创建扑克牌模块、洗牌模块和发牌模块。
第二章 实验
2.1 顺序表。(任选其一)
(1)编写一个程序,其功能是:从顺序表的第i个位置开始,删除k个元素。
(2)编写一个程序,其功能是:在一个非递减的顺序表中,删除所有值相等的多余元素,要求时间复杂度为O(n),空间复杂度为O(1)。
2.2 链表。(任选其一)
(1)约瑟夫环。编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个整数作为报数上限值m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。试设计一个程序,求出出列顺序。
利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。
例如m的初值为20;n=7,7个人的密码依次是:3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5。
(2) 已知有如下单链表(a1,a2,…,an),n为偶数。
… ……
要求写出一个时间复杂度为O(n),辅助空间为O(1)的算法,将上述链表转换成:
… …
即(an,an-2,…,a2,a1,a3,…,an-1)。
2.3* 链表应用:大整数加法。设计一个程序实现两个任意长的整数加法运算。不同的计算机系统所能表示的整数范围不同,一个long类型的整数的范围是-231~231-1。但是在一些应用中,我们需要处理的数远远大于这个范围,利用双向链表实现。
提示:根据大整数本身的特征以及计算过程中对于存取时间复杂度的要求,我们选择双向链表作为其存储结构。我们将一个大整数从右到左分组,每三位为一个节点,若剩余一个组不满三位也将其作为一个节点处理。大整数本身的符号用头节点来表示。1表示正数,-1表示负数。通过这样的方式我们就构造了一个存储大整数的双向链表,然后就可以进行大整数的基本运算了。
基本思想:构造三个双向链表,分别存放加数,被加数和运算结果。其运算顺序是从最右边节点开始,以3个数也就是1个节点作为一个单位进行,本次运算结果也要进行分组,后三位作为一个节点存入结果链表中。剩余位作为进位参加左边节点的运算。依此进行。例如(这里用括弧()来表示节点):
123445+9754=(123)(445)+(009)(754),
从右向左第一个节点:445+754=1199=(1)(199)其结果链表最右边的一个节点,而(1)将参加节点从右至左第二个节点的运算,此时又三个数(123)、(9)、(1)进行相加,其结果再作相同处理。
这里需要对参加加法运算的两个数的符号作特别的分类。
您可能关注的文档
- 诺基亚手机通过PC套件导出短信的方法.doc
- 诺亚方舟(福建)投资管理集团十月份简报.doc
- 诺贝尔物理学奖知识竞答题目(全).doc
- 课_平行线分线段成比例定理及其推论.doc
- 课件相似图形之放缩比例及黄金分割.doc
- 课伟大的旗帜.doc
- 课发散思维训练.doc
- 课制作图表及打印.doc
- 课堂参考题目.doc
- 课向“距离”挑战.doc
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
文档评论(0)