级数据结构课程设计任务书5班题目.docx
- 文档编号:30149384
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:28.52KB
级数据结构课程设计任务书5班题目.docx
《级数据结构课程设计任务书5班题目.docx》由会员分享,可在线阅读,更多相关《级数据结构课程设计任务书5班题目.docx(19页珍藏版)》请在冰豆网上搜索。
级数据结构课程设计任务书5班题目
130校园导游咨询
*问题描述:
(1)设计你的学校的校园平面图,所含景点不少于10个。
以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。
*测试数据:
由读者根据实际情况指定。
*实现提示:
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。
顶点和边均含有相关信息。
131长整数四则运算
*问题描述:
设计一个实现任意长的整数进行加法运算的演示程序。
*基本要求:
利用双向循环链表实现长整数的存储,每个结点含一个整形变量。
任何整形变量的范围是-(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;应输出“999
(4)1,0001,0001;-1,0001,0001;应输出“0”。
(5)1,0001,0001;-1,0001,0000;应输出“1”。
(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。
(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。
*实现提示:
(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。
(2)可以利用头结点数据域的符号代表长整数的符号。
用其绝对值表示元素结点数目。
相加过程中不要破坏两个操作数链表。
两操作数的头指针存于指针数组中是简化程序结构的一种方法。
不能给长整数位数规定上限。
132纸牌游戏
*问题描述:
编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过。
输出:
这时正面向上的牌有哪些?
133一元多项式计算
*问题描述:
能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输入;
在上交资料中请写明:
存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
3、订票系统
*问题描述:
通过此系统可以实现如下功能:
1)录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
2)查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
3)订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
4)退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5)修改航班信息:
当航班信息改变可以修改航班数据文件
*要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
134、迷宫求解
*问题描述:
可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;
*要求:
在上交资料中请写明:
存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
135、文章编辑
*问题描述:
输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行。
*要求
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
*存储结构使用线性表,分别用几个子函数实现相应的功能;
*输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
*输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
136、joseph环
*问题描述:
编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。
设计一个程序来求出出列顺序。
*要求:
利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
*测试数据:
m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
*输入数据:
建立输入处理输入数据,输入m的初值,n,输入每个人的密码,建立单循环链表。
*输出形式:
建立一个输出函数,将正确的输出序列
137、猴子选大王
*问题描述:
一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
*输入数据:
输入m,nm,n为整数,n *输出形式: 中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能 138、建立二叉树,层序、先序遍历(用递归或非递归的方法都可以) *问题描述: 要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数; 139、赫夫曼树的建立 *问题描述: 建立建立最优二叉树函数 *要求: 可以建立函数输入二叉树,并输出其赫夫曼树 在上交资料中请写明: 存储结构、基本算法(可以使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法; 140八皇后问题 【问题描述】 求出在一个n×n的棋盘上,放置n个不能互相捕捉的国际象棋“皇后”的所有布局。 这是来源于国际象棋的一个问题。 皇后可以沿着纵横和两条斜线8个方向相互捕捉。 如图所示,一个皇后放在棋盘的第4行第3列位置上,则棋盘上凡打“×”的位置上的皇后就能与这个皇后相互捕捉,也就是下一个皇后不能放的位置。 1 2 3 4 5 6 7 8 × × × × × × × × × × Q × × × × × × × × × × × × × × × 从图中可以得到以下启示: 一个合适的解应是在每列、每行上只有一个皇后,且一条斜线上也只有一个皇后。 【实现提示】 求解过程从空配置开始。 在第1列至第m列为合理配置的基础上,再配置第m+1列,直至第n列配置也是合理时,就找到了一个解。 接着改变第n列配置,希望获得下一个解。 另外,在任一列上,可能有n种配置。 开始时配置在第1行,以后改变时,顺次选择第2行、第3行、…、直到第n行。 当第n行配置也找不到一个合理的配置时,就要回溯,去改变前一列的配置。 141停车场管理 【问题描述】 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 每一组输入数据包括三个数据项: 汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。 对每一组输入数据进行操作后的输出信息为: 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为: (‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25), (‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。 其中: ‘A’表示到达(Arrival);‘D’表示(Departure);‘E’表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。 输入数据按到达或离去的时刻有序。 栈中每个元素表示一辆汽车,包含两个数据项: 汽车的牌照号码和进入停车场的时刻。 142作业评分系统 【问题描述】 设计一个可以给小学生出题并且可以给出分数的系统软件。 【基本要求】 利用栈求表达式的值,可供小学生作业,并能给出分数。 建立试题库文件,随机产生n个题目; 题目涉及加减乘除,带括弧的混合运算; 随时可以退出; 给出作业分数。 【进一步完成内容】 1)保留历史分数,能回顾历史,给出与历史分数比较后的评价。 2)界面设计的优化。 143哈夫曼编码/译码器 【问题描述】 设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。 【基本要求】 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)分别采用动态和静态存储结构。 初始化: 键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 编码: 利用建好的哈夫曼树生成哈夫曼编码; 输出编码; 设字符集及频度如下表: 字符空格ABCDEFGHIJKLM 频度1866413223210321154757153220 字符NOPQRSTUVWXYZ 频度5763151485180238181161 【进一步完成内容】 译码功能; 显示哈夫曼树; 界面设计的优化。 144全国交通咨询模拟 【问题描述】 处于不同目的的旅客对交通工具有不同的要求。 例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。 编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。 【设计要求】 1)提供对城市信息进行编辑(如: 添加或删除)的功能。 2)提供对列车时刻表进行编辑(增设或删除)的功能。 3)提供两种最优决策: 最快到达和最省钱到达。 4)旅途中耗费的总时间应该包括中转站的等候时间。 5)咨询以用户和计算机的对话方式进行。 由用户输入起始站、终点站、最优决策原则,输出信息: 最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明于何时乘坐哪一趟列车到何地。 测试数据: 参考全国交通图,自行设计列车时刻表。 【实现提示】 1)对全国城市交通图和列车时刻表进行编辑,应该提供文件形式输入和键盘输入两种方式。 列车时刻表则需根据交通图给出各个路段的详细信息,例如: 对从北京到上海的火车,需给出北京至天津、天津至徐州及徐州至上海各段的出发时间、到达时间及票价等信息。 2)以邻接表作交通图的存储结构,表示边的结构内除含有邻接点的信息外,还应包括交通工具、路程中耗费的时间和花费以及出发和到达的时间等多种属性。 145宿舍管理查询软件 【问题描述】 为宿舍管理人员编写一个宿舍管理查询软件。 【基本要求】 1)程序设计要求 ①采用交互工作方式 ②建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种) 2)查询菜单(用二分查找实现以下操作) ①按姓名查询 ②按学号查询 ③按房号查询 3)输出任一查询结果(可以连续操作) 146飞机订票系统 【问题描述】 设计一个飞机订票系统,可以模拟处理飞机订票过程中的各种操作。 【基本要求】 通过此系统可以实现如下功能: 1)录入 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。 2)查询 可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓)。 可以输入起飞抵达城市,查询飞机航班情况。 3)订票(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班。 4)退票 可退票,退票后修改相关数据文件。 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5)修改航班信息 当航班信息改变可以修改航班数据文件 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 147客户消费积分管理系统 问题描述: 针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求: 采用一定的存储结构进行客户信息的存储; 对客户的信息可以进行修改、删除、添加; 能够根据消费情况进行客户积分的计算; 根据积分情况实行不同程度的打折优惠; 148排序综合 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: 1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。 并把排序后的结果保存在不同的文件中。 2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 149学生搭配问题 一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程,要求如下: 1)输出每曲配对情况 2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值. 3)尽量设计出多种算法及程序,可视情况适当加分 提示: 用队列来解决比较方便. 150.猴子吃桃子问题 有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。 用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求: 1)采用数组数据结构实现上述求解 2)采用链数据结构实现上述求解 3)采用递归实现上述求解 151三元组表相加 设计目的 1.掌握数组的定义及数组的顺序存储结构 2.掌握特殊矩阵的压缩存储和稀疏矩阵的三元组存储 设计内容和要求 利用稀疏矩阵的三元组存储,来实现两矩阵相加。 152哈希表设计 【问题描述】 针对某个集体(比如你所在的班级)中的"人名"设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。 【基本要求】 假设人名为中国人姓名的汉语拼音形式。 待填入哈希表的人名共有30个,取平均查找长度的上限为2。 哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。 【测试数据】 取读者周围较熟悉的30个人的姓名。 【实现提示】 如果随机函数自行构造,则应首先调整好随机函数,使其分布均匀。 人名的长度均不超过19个字符(最长的人名如z庄双双(ZhangStmarlgShang〉。 字符的取码方法可直接利用C语言中的toascii函数,并可对过长的人名先作折叠处理。 【选作内容】 (1)从教科书上介绍的几种晗希函数构造方法中选出适用者并设计几个不同的哈希函数,比较它们的地址冲突率(可以用更大的名字集合作试验〉。 (2)研究这30个人名的特点,努力找一个晗希函数,使得对于不同的拼音名一定不发生地址冲突。 (3)在哈希函数确定的前提下尝试各种不同处理冲突的方法,考查平均查找长度的变化和造好的晗希表中关键字的聚簇性。 153.图书管理 【问题描述】 图书管理基本业务活动包括: 对一本书的采编入库、清除库存、借阅和归还等等。 试设计一个图书管理系统,将上述业务活动借助于计算机系统完成。 【基本要求】 〈1〉每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。 〈2〉作为演示系统,不必使用文件,全部数据可以都在内存存放。 但是由于上述四项基本业务活动都是通过书号(即关键字〉进行的,所以要用B树〈24树〉对书号建立索引,以获得高效率。 〈3〉系统应实现的操作及其功能定义如下: 1采编入库z新购入一种书,经分类和确定书号之后登记到图书账目中去。 如果这种书在账中已有,则只将总库存量增加。 ②清除库存: 某种书已无保留价值,将它从图书账目中注销。 ③借阅: 如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限。 ④归还z注销对借阅者的登记,改变该书的现存量。 ⑤显示: 以凹入表的形式显示B树。 这个操作是为了调试和维护的目的而设置的。 【测试数据】 入库书号: 35,16,18,70,5,50,22,60,13,17,12,45,25,毡,15,90,30,7然后清除: 45,90,50,22,42 其余数据自行设计。 由空树开始,每插入删除一个关键字后就显示B树的状态。 【实现提示】 (1)24树的查找算法是基础,入库和清除操作都要调用。 难点在于删除关键字的算法,因而只要算法对2-3树适用就可以了,暂时不必追求高阶B树也适用的删除算法。 (2)每种书的记录可以用动(或静)态链式结构。 借阅登记信息可以链接在相应的那种书的记录之后。 【选作内容】 (l)将一次会话过程(即程序一次运行)中的全部人机对话记入一个日志文件"log"中去。 (2)增加列出某著者全部著作名的操作。 思考如何提高这一操作的效率,参阅教科书12.6.2节。 (3〉增加列出某种书状态的操作。 状态信息除了包括这种书记录的全部信息外还包括最早到期(包括已逾期)的借阅者证号,日期可用整数实现,以求简化。 (4)增加预约借书功能。 154.平衡二叉树操作的演示 【问题描述】 利用平衡二叉树实现一个动态查找表。 【基本要求】 实现动态查找表的三种基本功能: 查找、插入和删除。 【测试数据】 由读者自行设定。 【实现提示】 (1)初始,平衡二叉树为空树,操作界面给出查找、插入和删除三种操作供选择。 每种操作均要提示输入关键字。 每次插入或删除一个结点后,应更新平衡二叉树的显示。 (2)平衡二叉树的显示可采用凹入表形式,也可以采用图形界面画出树形。 (3)教科书已给出查找和插入算法,本题重点在于对删除算法的设计和实现。 假设要删除关键字为x的结点。 如果x不在叶子结点上,则用它左子树中的最大值或右子树中的最小值取代x。 如此反复取代,直到删除动作传递到某个叶子结点。 删除叶子结点时,若需要进行平衡变换,可采用插入的平衡变换的反变换(如,左子树变矮对应于右子树长高)。 【选作内容】 (1)合并两棵平衡二叉树。 (2)把一棵平衡二叉树分裂为两棵平衡二叉树,使得在一棵树中的所有关键字都小于或等于工,另一棵树中的任一关键字都大于几 155.英语词典的维护和识别 【问题描述】 Trie树通常作为一种索引树,这种结构对于大小变化很大的关键字特别有用。 利用Trie树实现一个英语单词辅助记忆系统,完成相应的建表和查表程序。 【基本要求】 不限定Trie树的层次,每个叶子结点只含一个关键字,采用单字符逐层分割的策略,实现Trie树的插入、删除和查询的算法,查询可以有两种方式: 查询一个完整的单词或者查询以某几个字母开头的单词。 【测试数据】 自行设定。 【实现提示】 以实习三中已实现的串类型或C语言中提供的长度不限的串类型表示关键字,叶子结点内应包括英语单词及其注音、释义等信息。 【选作内容】 限定Trie树的层次,每个叶子结点可以包含多个关键字。 156.内部排序算法比较 【问题描述】 在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。 试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。 【基本要求】 (1)对以下6种常用的内部排序算法进行比较z起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 (2)待排序表的表长不小于1005其中的数据要用伪随机数产生程序产生: 至少要用5组不同的输入数据作比较: 比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。 (3)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 【测试数据】 由随机数产生器生成。 【实现提示】 主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。 程序还可以考虑几组数据的典型性,如,正序、逆序和不同程度的乱序。 注意采用分块调试的方法。 【选作内容】 (1)增加折半插入排序、二路插入排序、归并排序、基数排序等。 (2)对不同的输入表长作试验,观察检查两个指标相对于表长的变化关系。 还可以对稳定性作验证。 157.多关键字排序 【问题描述】 多关键字的排序有其一定的实用范围。 例如: 在进行高考分数处理时,除了需对总分进行排序外,不同的专业对单科分数的要求不同,因此尚需在总分相同的情况下,按用户提出的单科分数的次序要求排出考生录取的次序。 【基本要求】 (1)假设待排序的记录数不超过10000,表中记录的关键字数不超过5,各个关键字的范围均为0至100。 按用户给定的进行排序的关键字的优先关系,输出排序结果。 (2)约定按LSD法进行多关键字的排序。 在对各个关键字进行排序时采用两种策略: 其一是利用稳定的内部排序法,其二是利用"分配"和"收集"的方法。 并综合比较这两种策略。 【测试数据】 由随机数产生器生成。 【实现提示】 用5至8组数据比较不同排序策略所需时间。 由于是按LSD方法进行排序,则对每个关键字均可进行整个序列的排序,但在利用通常的内部排序方法进行排序时,必须选用稳定的排序方法。 借助"分配"和"收集"策略进行的排序,如同一趟"基数排序",由于关键字的取值范围为0至100,则分配时将得到104个链表。 【选作内容】 增添按MSD策略进行排序,并和上述两种排序策略进行综合比较。 158.文件索引 已知职工文件中包括职工号、职工姓名、职务和职称等若干数据项(见下表)。 职务有校长、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 级数 结构 课程设计 任务书 题目