数据结构课程设计选题
数据结构与算法课程设计题目[范文大全]
数据结构与算法课程设计题目[范文大全]第一篇:数据结构与算法课程设计题目数据结构与算法课程设计题目1.成绩管理问题描述:给出n个学生的考试成绩表,成绩表包括学生的学号、姓名、考试成绩(高等数学、英语、物理),设计一个简单的成绩管理程序。
基本要求:(1)建立成绩表,能够插入、删除、修改学生的成绩记录;(2)按任一单科成绩排序;(3)计算每名学生的平均成绩;(4)统计任一单科成绩不及格的学生人数, 输出不及格人数及不及格的学生名单(5)根据平均成绩将成绩表按由高到低的次序排列,统计每名学生在考试中获得的名次,分数相同的为同一名次,按名次输出成绩表。
(6)成绩表保存在文件中, 可以从文件读取数据。
测试数据:学生可以根据自己班级的考试成绩单,任意截取一部分做为测试数据 2.一元多项式简单计算问题描述:设计一个简单一元多项式计算器。
基本要求:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,输出结果多项式;(4)两个多项式相减,输出结果多项式。
提高要求:可以根据输入变量的值,计算出多项式的结果,且算法的效率高。
测试数据:可任意选取两个一元多项式,可以是一般的多项式,也可以是稀疏多项式。
3.舞伴问题问题描述:一班有m个女生、n个男生(m不等于n), 举办一场舞会.男女生分别编号坐在舞池两边的椅子上,每曲开始时, 依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。
基本要求:输入男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。
原始数据和结果数据要保存到文件中。
测试数据:分别选择男生多于女生、女生多于男生、男女生相等的三组测试数据提高要求:计算出任意一位男生(编号为X)和任意一位女生(编号为Y), 在第K曲配对跳舞的情况。
4.文学研究助手(*)问题描述:文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
数据结构课程设计可选题目
数据结构课程设计可选题目1. 飞机订票系统任务:通过此系统可以实现如下功能:⑴录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)⑵查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);⑶可以输入起飞抵达城市,查询飞机航班情况;⑷订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;若没有订到票,可以记录等待客户的信息:姓名、联系方式、所需航班号、所需票数;⑸退票:可退票,退票后修改相关数据文件;若有客户等待此航班的票,则将票给等待客户;⑹客户资料有姓名,证件号,联系方式、订票数量及航班情况,订单要有编号。
⑺修改航班信息:当航班信息改变可以修改航班数据文件。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
2. 文章编辑功能:(1)静态存储一页文章,每行最多不超过80个字符,共N行;用线性表实现。
(2)字数统计:分别统计出其英文字母数、数字个数和空格数及整篇文章总字数;(3)查找:统计某一字符串在文章中出现的次数及出现位置,并输出该次数,和每一个出现位置;(4)删除:删除某一字符串,并将后面的字符前移。
(5)插入:向某行某位置之前插入一个字符串,若插入后该行超过80个字符,则将该行拆分成两行;(6)输出:可以输出文章内容。
要求:人机交互界面。
3. 宿舍管理查询软件任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:功能:1)建立宿舍学生记录数据文件,每个房间不超过8人,宿舍人员的记录除包含姓名、学号、房间号之外,其他数据项自行设计。
默认按房间号递增排列。
2)实现按关键字排序(如按姓名、学号、房间号),排序方法可以在(插入、选择、交换排序中任选一种)3)增加、删除学生记录。
4)查询(用二分查找实现以下操作)。
A. 按姓名查询B. 按学号查询C. 按房号查询要求:采用交互工作方式,设计合适的菜单4. 校园导航问题任务:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
数据结构课程设计-2019版
课程设计题目(2019版):(1-8题必做)1、系统进程统计(必做)(链表)[问题描述]设计一个程序,每秒统计一次当前系统的进程状况,并按照内存使用自多到少排序打印输出相关信息。
对已经结束的进程,另外给出一个列表,并显示该进程的结束时间和持续时间。
[基本要求](1)该题目要求使用两个链式线性表。
一个链表存储当前活动进程,要求使用双向链表,排序要求是按照内存使用自多到少排序。
另外一个链表存储已结束进程,要求使用单向链表,按照结束时间离当前时间的关系排序,最近的最前,最远的最后。
(2)每秒在窗口内更新一次当前系统进程情况,输出内容包括:进程名,持续时间,内存使用情况。
(3)每秒在窗口内更新一次已结束进程情况,输出内容包括:进程名,持续时间,结束时间。
(4)注意进程在这两个链表中的切换,一个进程既可被结束,也可以过一段时间后再被运行。
2、算术表达式求值(必做) (栈)[问题描述]一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。
假设操作数是正实数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#6+15*(21-8/4)#。
引入表达式起始、结束符是为了方便。
编程利用“运算符优先法”求算术表达式的值。
[基本要求](1)从键盘或文件读入一个合法的算术表达式,输出正确的结果。
(2)显示输入序列和栈的变化过程。
(3)考虑算法的健壮性,当表达式错误时,要给出错误原因的提示。
(4)实现非整数的处理(*)。
3、公共钥匙盒(必做)(线性表,栈,队列)[问题描述]有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。
每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。
钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。
一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。
数据结构(含课程设计)·随堂练习2019春华南理工大学网络教育答案
数据结构(含课程设计),随堂第一章绪论1.(单选题) 计算机所处理的数据一般具备某种内在联系,这是指()。
A、数据和数据之间存在某种关系 B.元素和元素之间存在某种关系C元素内部具有某种结构 D.数据项和数据项之间存在某种关系答题: A. B. C. D. (已提交)参考答案:B问题解析:2.(单选题) 在数据结构中,与所使用计算机无关的是数据的()结构.A.逻辑B.存储C.逻辑和存储D. 物理答题: A. B. C. D. (已提交)参考答案:A问题解析:3.(单选题) 数据结构在计算机中的表示称为数据的()A.存储结构B.抽象数据类型C.顺序结构D.逻辑结构答题: A. B. C. D. (已提交)参考答案:A问题解析:4.(单选题) 在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储().A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法答题: A. B. C. D. (已提交)参考答案:C问题解析:5.(单选题) 在计算机的存储器中表示数据时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称为()A.逻辑结构B.顺序存储结构C.链式存储结构D.以上都正确答题: A. B. C. D. (已提交)参考答案:B问题解析:6.(单选题) 当数据采用链式存储结构时,要求().A.每个结点占用一片连续的存储区域B.所有结点占用一片连续的存储区域C结点的最后一个数据域是指针类型D.每个结点有多少个后继就设多少个指针域答题: A. B. C. D. (已提交)参考答案:A问题解析:7.(单选题) 以下关于算法的说法正确的是().A.算法最终必须由计算机程序实现B.算法等同于程序C算法的可行性是指指令不能有二义性D.以上都是错误的答题: A. B. C. D. (已提交)参考答案:D问题解析:8.(单选题) 算法的时间复杂度与()有关.A问题规模 B.计算机硬件性能C编译程序质量 D.程序设计语言答题: A. B. C. D. (已提交)参考答案:A问题解析:9.(单选题) 算法的主要任务之一是分析()A算法是否具有较好的可读姓,B算法中是否存在语法错误,C算法的功能是否符合设计要求D.算法的执行时间和问题规模之间的关系答题: A. B. C. D. (已提交)参考答案:D问题解析:10.(单选题) 某算法的时间复杂度为O(),表明该算法的()A问题规模是 B执行时间等于C.执行时间与成正比D.问题规模与成正比答题: A. B. C. D. (已提交)参考答案:C问题解析:第二章线性表1.(单选题) 线性表是具有n个()的有限序列.A.关系 B字符C数据元素 D.数据项答题: A. B. C. D. (已提交)参考答案:C问题解析:2.(单选题) 以下关于线性表的叙述中正确的是()A.每个元素都有一个前趋元素和一个后继元素B线性表中至少有一个元素C.线性表中元素的排列次序必须是由小到大或由大到小D.除第一个和最后一个元素外,每个元素都有一个且仅有一个前趋元素和后继元素答题: A. B. C. D. (已提交)参考答案:D问题解析:3.(单选题) 以下关于线性表和有序表的叙述中正确的是()。
《数据结构》课程设计题目
《数据结构》课程设计题目《数据结构》课程设计题目课程设计题一:学生成绩管理系统设计目的:1.2.3. 掌握线性链表的建立。
掌握线性链表的基本操作。
掌握查找的基本算法。
设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。
设计要求:1.2.3.写出系统需求分析,并建模。
编程实现,界面友好。
输出操作前后的结果。
课程设计题二:停车场管理系统设计目的:1.2.3.4. 掌握栈和队列的建立。
掌握栈和队列的基本操作。
深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。
每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
设计要求:1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。
数据结构课程设计题
“数据结构”课程设计题目1、城市链表[问题描述]将若干城市的信息,存入一个带头结点的单链表。
结点中的城市信息包括:城市名,城市的位置坐标。
要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求](1)给定一个城市名,返回其位置坐标;(2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
[测试数据]由学生依据软件工程的测试技术自己确定。
注意测试边界数据。
2、约瑟夫生死者游戏[问题描述]约瑟夫(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。
[选作内容]向上述程序中添加在顺序结构上实现的部分。
3、括号匹配的检验[问题描述]假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。
检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。
例如:考虑下列的括号序列:[ ( [ ] [ ] ) ]1 2 3 4 5 6 7 8当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。
数据结构课程设计题目
数据结构课程设计题目请从下面四道题目中任选一道作为答辩题目。
答辩时会问每位同学1~2个问题,根据回答正确与否给出数据结构课程设计的成绩。
题目1:设计程序以实现构造哈夫曼树的哈夫曼算法。
要求:求解所构造的哈夫曼树的带全路径长度。
题目2:设计并实现一个航班信息查询和检索系统。
要求:对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。
航班信息表的样式如下:其中航班号一项的格式为:前两个大写字母表示航空公司的名称,后4位为航班编号,例如:CA1544,CA表示航空公司的名称,1544为航班编号。
题目3.求解迷宫问题:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍,设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
设计要求如下:(1)以链栈作为存储结构,编写一个求解迷宫的非递归程序,并将求得的通路以三元组(i,j,d)的形式输出,其中:i,j指示迷宫中的一个坐标,d表示走到下一坐标的方向;(2)编写递归形式的算法,求得迷宫中所有可能的通路;(3)以方阵形式输出迷宫及其通路。
[测试数据]左上角(1,1)为入口,右下角(9,8)为出口。
1 2 3 4 5 6 7 8[实现提示]计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。
假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。
可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(m,n)。
为处理方便起见,可在迷宫的四周加一圈障碍。
对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。
题目4.校园导游程序:用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。
数据结构课程设计题目
数据结构课程设计题目以下7个题目任选其一。
1.排序算法比较利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且(1)统计每一种排序上机所花费的时间。
(2)统计在完全正序,完全逆序情况下记录的比较次数和移动次数。
(3)比较的指标为关键字的比较次数和记录的移动次数(一次记录交换计为3次移动)。
(4)对结果作简单分析,包括对各组数据得出结果波动大小的解释。
2.图的深度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索遍历。
画出搜索顺序示意图。
3.图的广度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。
画出搜索顺序示意图。
4.二叉树的遍历对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。
画出搜索顺序示意图。
5.链表操作利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。
画出搜索顺序示意图。
6.一元稀疏多项式简单计数器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。
序列按指数降序排列。
(3)多项式a和b相加,建立多项式a+b,输出相加的多项式。
(4)多项式a和b相减,建立多项式a-b,输出相减的多项式。
用带头结点的单链表存储多项式。
测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)(2)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)7.实现两个链表的合并基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和n个。
数据结构课程设计题目
数据结构课程设计题⽬《数据结构》课程设计题⽬1. 排序算法的性能分析问题描述设计⼀个测试程序,⽐较⼏种内部排序算法的关键字⽐较次数和移动次数以取得直观感受。
基本要求(1)对冒泡排序、直接排序、选择排序、箱⼦排序、堆排序、快速排序及归并排序算法进⾏⽐较。
(2)待排序表的表长不⼩于100,表中数据随机产⽣,⾄少⽤5组不同数据作⽐较,⽐较指标:关键字参加⽐较次数和关键字的移动次数(关键字交换记为3次移动)。
(3)输出⽐较结果。
选做内容(1)对不同表长进⾏⽐较。
(2)验证各算法的稳定性。
(3)输出界⾯的优化。
2. 排序算法思想的可视化演⽰—1基本要求排序数据随机产⽣,针对随机案例,对冒泡排序、箱⼦排序、堆排序、归并算法,提供排序执⾏过程的动态图形演⽰。
3. 排序算法思想的可视化演⽰—2基本要求排序数据随机产⽣,针对随机案例,,对插⼊排序、选择排序、基数排序、快速排序算法,提供排序执⾏过程的动态图形演⽰。
4. 线性表的实现与分析基本要求①设计并实现线性表。
②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储⽅式③针对随机产⽣的线性表实例,实现线性表的插⼊、删除、搜索操作动态演⽰(图形演⽰)。
5. 等价类实现及其应⽤问题描述:某⼯⼚有⼀台机器能够执⾏n个任务,任务i的释放时间为r i(是⼀个整数),最后期限为d i(也是整数)。
在该机上完成每个任务都需要⼀个单元的时间。
⼀种可⾏的调度⽅案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。
⼀个时间段不允许分配给多个任务。
基本要求:使⽤等价类实现以上机器调度问题。
等价类分别采取两种数据结构实现。
6. ⼀元稀疏多项式计算器问题描述设计⼀个⼀元稀疏多项式简单计算器。
基本要求⼀元稀疏多项式简单计算器的基本功能是:(1)输⼊并建⽴多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相加,建⽴多项式a+b;(4)多项式a和b相减,建⽴多项式a-b;(5)计算多项式在x处的值;(6)计算器的仿真界⾯(选做)7. 长整数的代数计算问题描述应⽤线性数据结构解决长整数的计算问题。
数据结构课程设计选题
数据结构课程设计选题数据结构课程设计选题题⽬选题⼀:迷宫与栈问题【问题描述】以⼀个mXn的长⽅阵表⽰迷宫,0和1分别表⽰迷宫中的通路和障碍。
设计⼀个程序,对任意设定的迷宫,求出⼀条从⼊⼝到出⼝的通路,或得出没有通路的结论。
【任务要求】1)⾸先实现⼀个以链表作存储结构的栈类型,然后编写⼀个求解迷宫的⾮递归程序。
求得的通路以三元组(i,j,d)的形式输出。
其中:(i,j)指⽰迷宫中的⼀个坐标,d表⽰⾛到下⼀坐标的⽅向。
如,对于下列数据的迷宫,输出⼀条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。
2)编写递归形式的算法,求得迷宫中所有可能的通路。
3)以⽅阵形式输出迷宫及其通路。
【测试数据】迷宫的测试数据如下:左上⾓(0,1)为⼊⼝,右下⾓(8,9)为出⼝。
出⼝出⼝选题⼆:算术表达式与⼆叉树【问题描述】⼀个表达式和⼀棵⼆叉树之间,存在着⾃然的对应关系。
写⼀个程序,实现基于⼆叉树表⽰的算术表达式的操作。
【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和⼆元运算符(+,-,*,/,^(乘幂))。
实现以下操作:1)ReadExpre(E)—以字符序列的形式输⼊语法正确的前缀表达式并构造表达式E。
2)WriteExpre(E)—⽤带括弧的中缀表达式输出表达式E。
3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
4)Value(E)—对算术表达式E求值。
5)CompoundExpr(P,E1,E2)--构造⼀个新的复合表达式(E1)P(E2)【测试数据】1)分别输⼊0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。
2)每当输⼊⼀个表达式后,对其中的变量赋值,然后对表达式求值。
选题三:银⾏业务模拟与离散事件模拟【问题描述】假设某银⾏有4个窗⼝对外接待客户,从早晨银⾏开门(开门9:00am,关门5:00pm)起不断有客户进⼊银⾏。
数据结构与算法课设题目一1
数据结构与算法课设题目一12013年秋季学期,数据结构与算法课程设计题目1.扫雷问题。
有些个人计算机会带有一个名为Minesweeper的游戏。
该游戏界面是一个网格,网格中的有些方块是雷。
编写一个程序以读取文件,该文件中存放着网格中的行数、列数以及网格本身。
网格会含有一些标记为o的方块,这些就是雷。
其他方块不是雷,将会标记上问号(?)。
程序的输出就是输出这个网格。
雷依然会标记成o,而那些不含雷的方块会替换成一个数字,以表明邻近雷的个数。
最大数字将是8。
(4)例如:15 52?o 2 2o2113o??o? 3 o33o24??o?o 4 34o4o5oo?o? 5 oo4o26?o 6 3o3112.求素数问题。
埃拉托色尼筛法(Sieve of Eratosthenes)是一种用来求所有小于N的素数的方法。
从建立一个整数2~N的表着手,寻找i?的整数,编程实现此算法,并讨论运算时间。
(1)3.方程求解问题。
方程A5+B5+C5+D5+E5=F5刚好有一个满足0≤A≤B≤C≤D≤E≤F≤75的整数解。
请编写一个求出该解的程序。
(3)4.最短字符串问题。
编写一个程序,从输入中读取字符串,并按长度顺序,最短字符串优先的原则输出它们。
如果有若干字符串具有相同的长度,就按字母顺序输出它们。
(3)5.计算1的个数问题。
编写递归程序,返回十进制数N的二进制表示中1的个数。
(2)6.排序重构问题。
令A为一个由N个已特殊排序数组成的数列:A1,A2,…,AN,其中A1=0。
令B为N(N-1)/2个数(定义为Bij=Ai-Aj(i>j))组成的数列。
例如,A=0,1,5,8,那么D=1,3,4,5,7,8。
请完成:a)编写程序,根据A构造D;b)编写程序,构造与D相对应的某一个数列A,注意A不是唯一的。
(4)7.占用网格计算问题。
考虑一个N*N的网格,其中某些方格已被占用。
如果两个方格共用公共的边,就说它们属于同一个组,如图示,一组为4个被占用的方格,3组为两个被占用的方格,2个方格被单独占用。
数据结构(含课程设计·随堂练习2020春华工答案
D.算法的执行时间和问题规模之间的关系
答题:A. B. C. D.(已提交)
参考答案:D
问题解析:
10.(单选题)某算法的时间复杂度为O( ),表明该算法的()
A问题规模是 B执行时间等于
C.执行时间与 成正比D.问题规模与 成正比
答题:A. B. C. D.(已提交)
参考答案:C
答题:A. B. C. D.(已提交)
参考答案:D
问题解析:
4.(单选题)已知一个栈的进栈序列是1, 2, 3, ..., n,其输出序列是p1, p2, ..., pn,若p1=n,则pi的值()。
A. i B. n-i C. n-i+1 D.不确定
答题:A. B. C. D.(已提交)
参考答案:C
B.一个结点的指针域用于指向下一个数据元素的结点
C.单链表必须带有头结点
D.单链表中的所有结点可以连续存放,也可以不连续存放
答题:A. B. C. D.(已提交)
参考答案:C
问题解析:
9.(单选题)链表不具备的特点是()
A.可以随机访问任一结点B.插入、删除不需要移动元素
C.不必事先估计存储空间D.所需空间与其长度成正比
数据结构
第一章
随堂练习提交截止时间:2019-12-15 23:59:59
当前页有10题,你已做10题,已提交10题,其中答对10题。
1.(单选题)计算机所处理的数据一般具备某种内在联系,这是指()。
A、数据和数据之间存在某种关系B.元素和元素之间存在某种关系
C元素内部具有某种结构D.数据项和数据项之间存在某种关系
C.顺序结构D.逻辑结构
答题:A. B. C. D.(已提交)
《数据结构》课程设计选题参考
《数据结构》课程设计选题参考. 集合运算器设计编写程序实现两个集合的并、交、相对补、对称差运算,并判断这两个集合是否相等、是否有包含关系。
题目要求:()输入集合和集合的元素;()输出集合和的并∪、交∩、相对补、对称差运算⊕;()输出集合与是否相等的判定结果;()输出一个集合是否为另一个集合的子集的判定结果;()输出集合幂集。
输入输出要求:()集合输入输出形式为:{集合元素,集合元素,…,集合元素}。
()编写相应菜单,用户通过选择菜单中的相应项来完成相应功能。
. 矩阵计算器设计编写程序实现任意两个矩阵的加法、减法、乘法运算和矩阵转置运算。
题目要求:()编写菜单允许用户选择相应的运算操作;()矩阵的维数可以任意;()程序能检查在所选择的运算在给定矩阵上是否可执行。
输入输出要求:(1)矩阵输入输出形式为:集合元素()集合元素()…()集合元素1m(回车)集合元素()集合元素()…()集合元素2m(回车)……集合元素()集合元素()…()集合元素(回车). 大整数运算器设计编写程序实现任意大整数的加法、减法、乘法运算。
题目要求:()大整数长度在十位以上;()输入两个任意长度的大整数;()实现两个大整数的加、减、乘法运算;()输出运算结果;()编写相应菜单,允许用户选择运算类型。
. 大素数查询器设计输出指定范围内的所有素数。
指定范围不小于。
题目要求:()找出指定范围内的所有素数;()统计素数的个数;()将结果保存到文件。
输入要求:以上限和下限的形式指定查找范围输出要求:查找结果输出到文件,且每个素数占一行。
. 银行排队模拟系统银行业务越来越丰富,有一般的客户存款或取款、理财金(股票、基金等业务)、外币服务等。
每天来银行的客户越来越多,为免除客户排队等待,日前银行均设计有排队管理系统。
试编程模拟管理银行的排队业务。
题目要求:()设置有排队机器,可以实现“理财金”“外币”“个人服务”等种业务的排队。
()银行窗口接待服务。
数据结构课程设计可选题目
1.背包问题的求解2.全国交通咨询模拟3.一元稀疏多项式计算器4.马踏棋盘5.电梯模拟6.重言式判别7.教学计划编制8.全国交通咨询模拟9.运动会分数统计10.订票系统11.文章编辑12.约瑟夫环(Joseph)13.校园导游程序14.任意长的整数加法15.通讯录管理系统的设计与实现.16.产品进销存管理系统17..学生信息管理系统的设计与实现18.简易电子表格的设计19.教师信息管理系统的设计与实现20.电话号码查询系统21.二叉排序树与平衡二叉树的实现22.仓库管理系统23.农夫过河问题的求解24.图书管理信息系统的设计与实现25.客户消费积分管理系统26.商店售货管理系统的设计与实现27.家谱管理系统28.排序算法比较29.算术表达式求值30.职工工资管理系统的设计与实现31.房屋销售管理信息系统的设计与实现32.电视大赛观众投票及排名系统33.超市管理信息系统的设计与实现34.药店的药品销售统计系统35.教师职称管理系统的设计与实现36.宾馆客房管理系统的设计与实现37.航空售票处的服务系统38.营业窗口队列模拟39.迷宫问题40.八皇后问题41.运算器42.稀疏矩阵运算器43.电话号码查询系统44.停车场模拟管理程序的设计与实现45.哈夫曼编/译码的设计与实现46.班级学生成绩管理系统47.个人书籍管理系统的设计与实现48.稀疏矩阵的应用49.银行业务模拟50.最小生成树的Prime算法实现51.最小生成树的Kruskal算法实现52.链式串的实现53.多项式运算的实现54.数制转换问题55.关键路径求解56.纸牌游戏57.宿舍管理查询软件58.活期储蓄帐目管理59.手机通讯录的制作60.H TML文档标记匹配算法。
《沈阳理工大学数据结构课程设计50题》
题目:1.键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。
2.给定两个序列X=<x1, x2, …, x m>和Y=<y1, y2, … , y n>,要求找出X和Y的一个最长公共子序列。
3.设一单向链表的头指针为head,链表的记录中包含着整数类型的key域,试设计算法,将此链表的记录按照key递增的次序进行就地排序.(不允许使用数组做辅助存储)4.擦数游戏在黑板上从1开始写出一组连续的自然数,然后擦去其中的一个数k,其余的数的平均值为a/b(a,b为整数)。
试编写程序求出被擦去的数k。
5.基数排序6.连通无向图的非递归遍历。
7.求二叉树根结点到指定结点的路径。
8.判别给定的二叉树是否为二叉排序树。
9.已知二叉树的中序和先序序列,求后序序列。
10.拓扑排序11.试修改起泡排序,以交替的正、反两个方向进行扫描。
即第一趟把排序码最大的记录放到最末尾,第二趟把排序码最小的记录放到最头上。
如此反复进行。
12.矩阵A中的元素若满足:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称元素A[i,j]为该矩阵的一个马鞍点。
求出m×n矩阵的所有马鞍点。
13.最小生成树(普里母算法实现 28题用其他算法实现)14.迷宫求解:在迷宫中求一条路径的算法,基本思想:若当前、位置可通过,则压入栈中,否则探索下一位置,若走不通,则回溯,迷宫大小:M*N。
迷宫设置自定义。
15.设明文P=P0P1P2…Pn和密钥K=K0K1K2…Km(n>=m)中的字符Pi(1<=i<=n)或Kj(1<=j<=m)的ASCII为00~7FH,用密钥K对明文P进行加密得到密文C=C0C1C2…Cn,用密钥K对密文C解密得到明文P。
加密: Ci=Pi+Kj (j=i mod (m+1)) (当Ci<=7FH)Ci=Pi+Kj-80H (j=i mod (m+1)) (当Ci>7FH)解密:: Pi=Ci-Kj (j=i mod (m+1)) (当Ci>=Kj)Pi=Ci-Kj+80H (j=i mod (m+1)) (当Ci<Kj)16.求二叉树中指定两个结点共同的祖先。
数据结构与算法课程设计题目汇编
数据结构与算法课程设计题目汇编1.Skip List的实现及分析(1) 问题描述Skip List作为有序链表结构的一种扩展,如下图所示,其中a是普通的单链表;而b是在次基础上加上第二层(level 2)的额外指针,这些额外的指针指向间隔为2的下一个结点,skip list因此得名;类似的c是加上level 3后的skip list;d是加上level 4后的skip list。
图6-8 Skip List的基本结构示意图Skip List上查找的基本思想是先从最高的Level层上查找,找到key所在的范围后,再从较低的层次继续重复查找操作,直到Level 1。
Skip List上的插入操作如下图所示。
图6-9 Skip List上插入操作的示意图Skip List上的删除操作只需直接删除元素即可(包括局部范围内的指针调整)。
本设计题目的基本内容是构造并实现Skip List的ADT,并能对其维护动态数据集合的效率进行一定的实验验证。
(2) 课程设计目的认识并应用Skip List数据结构,体会线性表结构的变形形式。
(3) 基本要求① ADT中应包括初始化、查找、插入、删除等基本操作。
② 分析各基本操作的时间复杂性。
③ 针对实现Skip List上基本操作的动态演示(图形演示)。
④ 能对Skip List维护动态数据集合的效率进行实验验证,获得一定量的实验数据,如给定随机产生1000个数据并将其初始化为严格Skip List,在此基础上进行一些列插入、删除、查找操作(操作序列也可以随机生成),获得各种操作的平均时间(或统计其基本操作个数);获得各操作执行时间的变化情况,应该是越来越大,当大到一定程度后应该进行适当的整理,需设计相应的整理算法,并从数量上确定何时较为合适;能和其他简单线性数据结构,如排序数组上的折半查找进行各类操作效率上的数量对比。
(4) 实现提示需仔细设计整理算法。
2. B-Trees的实现及分析(1) 问题描述B-Trees是一类满足特殊条件的M路查找树。
数据结构课程设计1 (1)
1.一元稀疏多项式计算器(不选)[问题描述]设计一个一元稀疏多项式简单计算器。
[基本要求]输入并建立多项式;输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序;多项式a和b相加,建立多项式a+b;多项式a和b相减,建立多项式a-b;[测试数据](2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3)(1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1)(x+x3)+(-x-x3)=0(x+x2+x3)+0=(x3+x2+x)[实现提示]用带头结点的单链表存储多项式,多项式的项数存放在头结点中。
2.背包问题的求解(一人)[问题描述]假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。
例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2)[实现提示]可利用回溯法的设计思想来解决背包问题。
首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。
但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。
由于回溯求解的规则是“后进先出”因此自然要用到栈。
数据结构课程设计参考题目(一)
数据结构课程设计参考题目(一)数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储、管理和操作等方面的问题。
随着计算机技术的发展,数据结构逐渐成为各个领域必不可少的一门课程。
而数据结构课程设计参考题目是该课程的一项重要内容,它能够帮助学生更好地掌握课程知识,提高对数据结构的理解和应用能力。
以下是几个数据结构课程设计参考题目。
1.链表操作设计一个链表类,使得它能够实现插入、删除、查找和遍历链表的操作。
要求采用单向链表或双向链表实现,并考虑链表的循环操作。
同时,要求能够对链表进行排序操作。
2.栈与队列操作设计一个栈和队列类,使得它们能够实现入栈、出栈、入队和出队的操作。
要求采用数组或链表实现,并可用于表达式转换和括号匹配等相关问题。
3.堆排序算法实现堆排序算法,要求能够对整型数列进行排序,并输出其排序后的结果。
要求堆的构建、删除和调整操作均可用最大堆或最小堆实现。
同时,要求能够对算法的时间复杂度进行分析,并与快速排序等算法进行比较。
4.哈希表实现设计一个哈希表类,使其能够实现插入、删除和查找等操作。
要求采用链地址法或开放地址法实现,同时需要考虑哈希函数和扩容等问题。
要求能够对哈希冲突的解决方法进行比较和分析。
5.树与图的遍历实现二叉树、B树或B+树的遍历操作,要求能够实现先序、中序和后序遍历,并能够循环遍历或递归遍历。
同时,要求能够对树的平衡性进行探究和讨论。
另外,树的遍历也是图的遍历的基础,可以通过深度优先搜索或广度优先搜索实现图的遍历。
以上是一些常见的数据结构课程设计参考题目,它们可以锻炼学生的编程能力、算法分析能力和数据处理能力,同时也可以增强学生对数据结构知识的理解和掌握。
数据结构课程设计分类题目 (1)
(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次,如序列{20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个);
13、设有一个由正整数组成的无序单链表,编写完成下列功能的算法:
(1)找出最小值结点,且打印该数值;
(2)若该数值是奇数,则将其与直接后继结点的数值交换;
(3)若该数值是偶数,则将其直接后继结点删除。
14、在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。例如:(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70)。
printf(sum);}
树和二叉树
1、二叉树用二叉链表存储,写一个算法将二叉树中的叶子结点按从右至左的顺序建立一个单链表。
2、知二叉树用二叉链表存储,写出求二叉树宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。
3、叉树用二叉链表存储,写一个算法交换各结点的左右子树。
4、二叉树用二叉链表存储,若结点的左孩子的数据域的值大于右孩子数据域的值,则交换其左右子树。
19、试设计一个算法打印出由根结点出发到达叶结点的所有路径。
20、试写出算法,求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
21、给定一组项及其权值,假定项都存放于二叉树的树叶结点,则具有最小带权外部路径长度的树称为huffman 树。编写构造huffman 树 的算法。
22、已知一中序线索二叉树,写一算法完成对它的中序扫描。
数据结构经典题目及c语言代码
《数据结构》课程设计题目(程序实现采用C语言)题目1:猴子选王(学时:3)一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。
n");return;}n", position+1);}}}ame,&stuff[i].department,&stuff[i].basepay,&stuff[i].allowance);if((fp=fopen("","wb"))==NULL){printf("Can't open file\n");return 0;}for(i=0;i<SIZE;i++)if(fwrite(&stuff[i],LENTH,1,fp)!=1)printf("文件写入出错\n");fclose(fp);if((fp=fopen("","rb"))==NULL){printf("Can't open file\n");}printf("修改过后的结果:\n");for(i=0;i<SIZE;i++){fread(&stuff[i],LENTH,1,fp);stuff[i].total=stuff[i].basepay+100+stuff[i].allowance;printf("%-10s%-10s %f %f %f\n",stuff[i].name,stuff[i].department,stuff[i].basepay+100,stuff[i].allowance,stuff[i ].total);}fclose(fp);return 0;}题目4:满足条件的有序表生成(学时:3)已知三个有序表A、B、C,它们皆由同一类元素构成,现要求对于表A作以下运算而获得有序表D:排出A中所有的既在B中又在C中出现的元素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构课程设计》待选题目
1.约瑟(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试编程实现之。
测试数据:m的初值为20;n=7,7个人的密码依次为3,1,7,2,4,8,4,首先,m 的值为6(正确的出列顺序应为6,1,4,7,2,3,5)。
2.编程设计一个一元多项式简单计算器。
要求如下:
①输入并建立多项式;
②输出多项式,输出形式为整数序列:n,c1,e1,c2,n2,…,cn,en,其中n
是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序
排列;
③多项式a和b相加,建立多项式a+b;
④多项式a和b相减,建立多项式a-b。
3.设计一个程序,演示用算符优先法对算术表达式求值的过程。
要求如下:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。
利用教材表 3.1(P55)给出的算符优先关系,实现对于算术四则混合运算表达式的求值。
4.迷宫求解问题:建立一个大小为m*n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),有一个入口和一个出口,找一个从入口到出口的简单路径,在计算机中可以用方块图表示迷宫。
每个方块或为通路,或为障碍(如图1所示,1代表障碍,0代表通路)即在求得的路径上不能重复出现同一通道块。
其基本思想是:若当前位置“可通”,则纳入“当前路径”,并继续朝“下一位置”探索,即将“下一位置”作为“当前位置”,如此重复直至达到出口;若当前位置“不可通”,则应顺着“来向”退回到“上一通道块”,然后朝着“来向”之外的其它方向继续探索;若该通道块的四周4个方块均“不可通”,则应从“当前路径”上删除该通道块。
所谓“下一位置”指的是当前位置四周4个方向(东、南、西、北)上相邻的方块。
假设以栈S 记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。
因此,“纳入路径”的操作即为“当前位置入栈”;“从当前路径上删除前一通道块”
的操作即为“出栈”。
试设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
测试数据:迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。
图1 迷宫
对于图1所示的迷宫,输出的一条通路为:(1,1),(1,2),(1,3),(1,4),(1,5),(2,5),(3,5),(3,6),(4,6),(5,6),(5,5),(6,5),(7,5),(7,6),(7,7),(7,8),(7,9),(8,9)。
5.用下表给出的字符集和频度的实际统计数据建立Huffman树,并实现以下报
业为例,如表1所示:
10门计算机专业课程设置的先后顺序。
其中一个合理的输出结果是:C1,C9,C8,C2,C7,C3,C5,C4,C10,C6。
当然,输出的结果可能不止一种。
7.任意输入50个由无符号数组成的关键字(可以使用随机输入的方式),构造一棵二叉排序树,并使用中序遍历的方式输出它的遍历结果。