大数据结构程序设计题目共29题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
题目1:设计一元多项式简单计算 (1)
题目2:链表应用1 (1)
题目3:链表应用2 (1)
题目4:通讯录 (2)
题目5:停车场管理系统...................... 错误!未定义书签。题目6:约瑟夫环.. (3)
题目7:运动会分数统计 (3)
题目8:文学研究助手问题 (3)
题目9:银行业务模拟与离散事件模拟 (4)
题目10:学生信息管理系统任务(用顺序表/链表). 错误!未定义书签。题目11:文章编辑功能 ...................... 错误!未定义书签。题目12:实验室管理........................ 错误!未定义书签。题目13:二叉树的基本操作(建立、求二叉树树深度、遍历).. (4)
题目14:纸牌游戏任务 (5)
题目15:算术表达式求值 (5)
题目16:内部排序算法比较 (5)
题目17:哈夫曼树的构造和哈夫曼编码/译码 (6)
题目18:构造可以使n个城市连接的最小生成树 (7)
题目19:交通咨询系统中的最短路径 (7)
题目20:集合的交、并、差运算................ 错误!未定义书签。题目21:长整数四则运算.. (7)
题目22:机订票系统........................ 错误!未定义书签。题目23:图书管理系统 (8)
题目24:哈希表应用 (8)
题目25:模拟旅馆管理系统的一个功能——床位的分配与回收 (9)
题目26:地图着色问题 (9)
题目27:俄罗斯套娃问题 (10)
题目28:扫雷 (11)
题目29:用C语言设计一个日历系统 (11)
题目1:设计一元多项式计算
【任务要求】
(1)能够按照指数降序排列建立并输出多项式;
(2)能够完成两个多项式的相加、相减,并将结果输入;
实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。
要求:在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;【测试数据】
自行选择
题目2:链表应用1
【任务要求】
实现两个链表的合并
基本功能要求:
(1)建立两个链表A和B,链表元素个数分别为m和n个。
(2)假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线形表C,使得:
当m>=n时,C=x1,y1,x2,y2,...xn,yn, (x)
当n>m时,C=y1,x1,y2,x2,…ym,xm,…,yn
输出线性表C
(3)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。
【测试数据】
1) A表(30,41,15,12,56,80)
B表(23,56,78,23,12,33,79,90,55)
2) A表(30,41,15,12,56,80,23,12,34)
B表(23,56,78,23,12)
题目3:链表应用2
【问题描述】
已知非空线性链表第一个链结点的指针为list,写出下列各项操作的算法程序。
(1)逆转该线性链表;
(2)删除线性链表中从左往右第一个数据为data的链结点;
(3)删除从第I个链结点开始的连续k个结点。
【任务要求】
设计一组输入数据并编写完整的程序。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。
【提示】
1)逆转一个链表是指在不增加新结点的前提下,依次改变链表中结点的连接方向。
2)删除数据结点时,首先判断链表是否为空,若非空,先判断第一个结点是否满足条件,若是则删除;否则从第二个结点开始顺序查找,直到找到为止,然后删除;对任何不满足条件的情况都报告相应提示信息。
3)从第I个结点开始连续删除k个结点时,考虑以下两种情况:当I=1时,从第一个开始删除即可;当I>1时,先找到前一个结点然后再连续删除K个结点。最后释放各个结点空间。【测试数据】
自行设定
题目4:通讯录
【问题描述】
该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。通讯者所包含信息请自行设定
【任务要求】
菜单内容:
(0)通讯录链表的建立
(1)通讯者结点的插入
(2)通讯者结点的查询
(3)通讯者结点的删除
(4)通讯录链表的输出
(5)退出管理系统
设计要求:
使用0~5来选择菜单项,其他输入则不起作用。
功能函数设计
5个不同功能的算法实现编程题,目的是练习利用链表结构来解决实际应用问题的能力,进一步理解和熟悉线形表的链式存储结构。
【测试数据】
自行设定,注意边界等特殊情况。
题目6:约瑟夫环
【问题描述】
编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
【任务要求】
利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
输入数据:输入m的初值,n ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列
【测试数据】
m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4。
题目7:运动会分数统计
【问题描述】
参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
【任务要求】
功能要求:1).可以输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整型