《数据结构》2016课程设计选题统计表
数据结构课设选题_2

20.n皇后问题求解问题描述:在n×n的棋盘上放置n个不能互相捕捉的国际象棋“皇后”的所有布局。
这是来源于国际象棋中的一个问题。
皇后是棋盘上最具杀伤力的一个棋子,她可以捕捉与她在同一行,或同一列,或同一斜线(有两条)上的所有棋子。
如下图所示,红线经过的格子都会被皇后捕捉。
要求:(1)皇后的个数n由用户输入,其值不能超过20。
(2)采用非递归方法求解。
21.由遍历序列构造二叉树我们知道,由先序遍历序列和中序遍历序列(或后序遍历序列和中序遍历序列)可以唯一确定一棵二叉树。
请编写一个程序,实现由先序遍历序列和中序遍历序列以及由中序遍历序列和后序遍历序列构造一棵二叉树的功能,要求以括号表示法(广义表表示法)和凹入表示法输出该二叉树。
测试数据:(1)先序遍历序列“ABDEHJKLMNCFGI”和中序遍历序列“DBJHLKMNEAFCGI”;(2)中序遍历序列“DBJHLKMNEAFCGI”和后序遍历序列“DJLNMKHEBFIGCA”;22.分油问题问题描述:设有大小不等的三个无刻度的油桶,分别能盛满x、y、z升油。
初始时,第一个油桶盛满油,第二、三个油桶为空。
寻找一种最少步骤的分油方式,在某一个油桶上分出targ升油。
基本要求:输入三个油桶的盛油量,要分出的油量targ,输出分油的结果。
测试数据:三个油桶盛油量分别为:8 、5、3要分出的油量为:423.实现英文单词按字典序排列的基数排序算法试设计一个将一组英文单词按字典序排列的基数排序算法。
设单词均由小写字母或空格构成,最长的单词有MaxLen个字母。
24.二元多项式乘法运算编写一个程序,能够完成两个二元多项式的乘法运算,并能给出明确的等式形式。
25.词典变位词检索系统在英文中,把某个单词字母的位置(顺序)加以改变所形成的新字词,英文叫做anagram,不妨译为变位词。
譬如said(say的过去式)就有dais(讲台)这个变位词。
在中世纪,这种文字游戏盛行于欧洲各地,当时很多人相信一种神奇的说法,认为人的姓名倒着拼所产生的意义可能跟本性和命运有某种程度的关联。
数据结构课程设计

“数据结构”课程设计报告二叉排序树的查找与性能分析学生姓名:段晓宣,张静指导教师:陈少军所在系:电子信息系所学专业:计算机科学与技术年级: 2010级计算机(1)班目录第一章需求分析1.1选题要求 (3)1.2选题的背景与意义 (3)1.3本组课程设计的目标 (3)1.4人员组成和分工 (3)第2章概要分析 (4)2.1系统数据流图 (4)2.2原始数据 (4)2.3输出数据 (4)2.4对数据的处理 (5)2.5数据结构 (5)2.6模块划分 (5)第3章详细设计 (6)3.1二叉排序树的创建 (6)3.2二叉排序树的插入 (7)3.3二叉排序树的查找 (7)3.4计算多数据的平均查找长度 (9)3.5主函数 (9)第4章用户手册 (10)4.1 用户须知 (10)第5章系统测试 (11)项目总结 (12)参考文献 (13)二叉树排序树的查找与性能分析摘要:21世纪是信息化的时代,计算机深入到生活的各个领域。
随着计算机的发展,许多高科技产品如雨后春笋应运而生。
但究其本质而言,无非是以前的理论加以包装。
对于数据控制、管理及处理等方面也可见一斑。
在如今应用的计算机的数据存储方式仍然主要以线性,树型,图型等为主要的及结构。
因此了解并掌握数据结构的知识是很有必要的。
在此次实训期间,本组人员通过运用所学数据结构的知识,进行以二叉排序树的查找与性能分析为题的课程设计,在同组人员的共同努力下,基本实现了:1.创建二叉排序树2.利用文件存储二叉排序树3.二叉排序树的插入4.二叉排序树的查找5.二叉排序树平均查找长度的算法第1章需求分析1.1选题要求(1)根据输入的先序及递归建立二叉排序树;(2)通过文件,向二叉排序树插入结点,并生成二叉树;(3)设置报名号为关键字,可以根据关键字进行查找;(5)查找的同时可以判断比较的次数;(6)根据查找的算法计算出10000个数据平均查找长度;1.2选题的背景与意义(1)树型存储结构数据存储结构中重要的组成部分,二叉树由是树的重点。
数据结构课程设计题目(最终版)

数据结构课程设计题目(最终版)数据结构课程设计题目1、医务室模拟。
问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。
试用队列结构进行模拟。
实现要求:要求输出医生的总等待时间和病人的平均等待时间。
程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。
当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。
当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。
2、招聘模拟问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。
,n-1)。
每位应聘者可以申报两个工种,并参加公司组织的考试。
公司将按应聘者的成绩,从高到低的顺序排队录取。
公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。
程序为每个工种保留一个录取者的有序队列。
录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。
实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。
3、组织机构问题问题描述:以青岛理工大学为例,实现对我校组织结构的管理。
要求把我校的组织结构以树型结构存储,实现要求:(1)树中每个结点保存部门名称;(2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个?(3)软件可以查询某部门下面的具体编制?4、最少换车次数问题问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。
设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。
数据结构课程设计选题

数据结构课程设计选题在现代信息技术的高速发展中,数据结构作为计算机科学的基础学科之一,对于计算机的程序设计和算法优化起着至关重要的作用。
选择一个合适的数据结构课程设计选题,不仅有助于我们深入理解和掌握数据结构的知识,更能够提高我们在实践中解决问题的能力。
本文将为大家介绍几个适合数据结构课程设计的选题,并给出相应的设计方案。
一、图的最短路径算法设计图是数据结构中的重要概念之一,它可以用来描述现实生活中的各种关系。
图的最短路径算法是图算法中的一个经典问题,它可以用来求解两个顶点之间的最短路径。
在这个选题中,我们可以选择迪杰斯特拉算法或者弗洛伊德算法来实现。
接下来,我们将根据实际情况选择适用的算法,并给出相应的设计方案。
1. 问题分析首先,我们需要明确题目的需求和问题分析。
在这个选题中,我们需要计算两个顶点之间的最短路径,我们可以选择迪杰斯特拉算法或者弗洛伊德算法来实现。
迪杰斯特拉算法适用于有向图和无向图,弗洛伊德算法适用于有向图。
根据具体情况,我们需要选择合适的算法。
2. 算法设计接下来,我们需要设计相应的算法来解决问题。
对于迪杰斯特拉算法,我们可以采用贪心策略,通过使用一个数组来存储当前到达每个顶点的最短路径,以及一个集合来存储已经找到最短路径的顶点。
对于弗洛伊德算法,我们可以采用动态规划的思想,通过一个二维数组来存储两个顶点之间的最短路径。
具体的实现细节可以根据具体情况来确定。
3. 实验验证最后,我们需要进行实验验证,验证我们的算法是否正确。
我们可以通过构造不同的图,来测试我们的算法是否能够正确地求解最短路径。
我们可以选择一些有向图或者无向图,然后手动计算出最短路径,再通过我们的算法来验证结果的正确性。
二、哈希表的设计与实现哈希表是数据结构中的一种重要的数据类型,它可以实现快速的插入、删除和查找操作。
在这个选题中,我们可以选择设计和实现一个哈希表,通过使用哈希函数将数据映射到对应的位置,并解决冲突问题。
操作系统课程设计选题情况统计表

操作系统课程设计选题情况统计表软件1301班软件1302班软件1303班课题学号姓名学号姓名学号1131407104丁涛131407212沈金凤131407308 131407116齐嘉敏131407320131407128徐周2131407105董方131407201白新131407117渠莉莉131407213唐红131407129薛燕3131407106范华131407202柏敏琦131407310 131407118石非131407214唐莉131407322131407130杨启明4131407107范艳131407203陈杰131407119宋成131407215王烨131407131杨旭龙5131407108顾嘉辉131407204陈亮131407312 131407120孙柱131407216王子恒131407132袁欣6131407109贺庆131407205陈宇星131407304 131407121万子桐131407217夏海婷131407313131407133张璐璐7131407110金鸣宇131407206樊杰131407302 131407122汪玥涵131407218杨翰奇131407314131407134张鹏8131407111李浩131407207顾俊杰131407303 131407123王亦凡131407219杨晓华131407315131407135周今天9131407112李佳明131407208顾云131407301 131407124王子131407220杨一帆131407316131407136周丽10131047101白春光131407209姬岚洋131407305 131407113连秀君131407221张敏131407317131407125夏琳131407137朱煜辰11131407102陈晶晶131407210金惠颖131407306 131407114刘畅131102212明重阳131407318131407126肖城12131407103陈旭131407211潘子旋131407115缪军131407223朱正纯131406122宋晓兆班姓名任家欢叶静邵周灿禹啸史竹君郝宁宁宋烨华范斌孙华清冯源孙伟松陈云云王冲黄志涛吴杨李长玉徐小玉。
数据结构课程设计题目及要求(2015-2016-2)概论

课程设计题目每位同学在本次课程设计期间须选择两道题目(1,2任选一题,3.4任选一题)并按照要求完成。
1考试报名管理系统1.1题目简介考试报名工作给各髙校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量,报名数据手工录入既费时又会不可避免地出现错误,同时也给不少学生以可乘之机。
本项目是对考试报划管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息:输出考生信息;査询考生信息:添加考生信息:修改考生信息;删除考生信息。
1.2设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先泄义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
1.3数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。
我们知道,线性表的顺序存储结构的特点是逻辑关系相邻的两个元素在物理位豊上也相邻, 因此可以随机存储表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
然而,从另一个方而来看,这个特点也铸成了这种存储结构的弱点:在做插入或删除操作时,需要移动大量元素。
为克服这一缺点,我们引入另一种存储形式一一链式存储。
链式存储是线性表的列一种表示方法,由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的弱点,但同时也失去了顺序表可随机存取的特点。
链式存储的优点是插入或删除元素时很方便,使用灵活。
缺点是存储密度小,存储空间利用率低。
事实上,链表插入、删除运算的快捷是以空间代价来换取时间。
顺序表适宜于做查找这样的静态操作:链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
数据结构课程设计题目表

数据结构课程设计题目表《数据结构》课程设计课题表课题1:设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)程序的运行时间应尽可能少。
课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
《数据结构》课程设计报告

《数据结构》课程设计报告一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中数据结构的基本概念、原理及实现方法,培养其运用数据结构解决实际问题的能力。
本课程目标如下:1. 知识目标:(1)理解数据结构的基本概念,包括线性表、栈、队列、串、数组、树、图等;(2)掌握各类数据结构的存储表示和实现方法;(3)了解常见算法的时间复杂度和空间复杂度分析;(4)掌握排序和查找算法的基本原理和实现。
2. 技能目标:(1)能够运用所学数据结构解决实际问题,如实现字符串匹配、图的遍历等;(2)具备分析算法性能的能力,能够根据实际问题选择合适的算法和数据结构;(3)具备一定的编程能力,能够用编程语言实现各类数据结构和算法。
3. 情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发其探索精神;(2)培养学生团队合作意识,提高沟通与协作能力;(3)培养学生面对问题勇于挑战、善于分析、解决问题的能力;(4)引导学生认识到数据结构在计算机科学中的重要地位,激发其学习后续课程的兴趣。
本课程针对高年级学生,课程性质为专业核心课。
结合学生特点,课程目标注重理论与实践相结合,强调培养学生的实际操作能力和解决问题的能力。
在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。
通过本课程的学习,学生将具备扎实的数据结构基础,为后续相关课程学习和职业发展奠定基础。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 数据结构基本概念:线性表、栈、队列、串、数组、树、图等;教学大纲:第1章 数据结构概述,第2章 线性表,第3章 栈和队列,第4章 串。
2. 数据结构的存储表示和实现方法:教学大纲:第5章 数组和广义表,第6章 树和二叉树,第7章 图。
3. 常见算法的时间复杂度和空间复杂度分析:教学大纲:第8章 算法分析基础。
4. 排序和查找算法:教学大纲:第9章 排序,第10章 查找。
教学内容安排和进度如下:1. 第1-4章,共计12课时,了解基本概念,学会使用线性表、栈、队列等解决简单问题;2. 第5-7章,共计18课时,学习数据结构的存储表示和实现方法,掌握树、图等复杂结构;3. 第8章,共计6课时,学习算法分析基础,能对常见算法进行时间复杂度和空间复杂度分析;4. 第9-10章,共计12课时,学习排序和查找算法,掌握各类算法的实现和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
(本页请打印并作为课程设计报告的扉页)
1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过5人(一个班
之内)。
2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、
不及格(1分)。
3、题目有难易和工作量大小之分(具体见题目后的“星级”),请同学们结合自身情况
选择题目。
4、课程设计报告和源代码严禁抄袭,报告要严格遵照要求来撰写,大致包含以下内
容:
①需求分析:叙述每个模块的功能性要求;
②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结
构(如果指定存储结构请写出该存储结构的struct或typedef定义);
③详细设计:各个算法的实现源代码(注意只写重要算法的源代码,完整的源代码
放在附录里面)。
源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;
④调试分析:需要测试数据的至少给出3组测试数据(随机产生的数据除外),记录
每一组数据输出的结果;并用文字描述调试过程中遇到的问题(问题是哪些、如何得以解决?);
⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试
能力的思考、对数据结构这门课程的思考等内容(严禁套话);
⑥附录:完整的源代码(必须正确缩进)。
5、程序运行时,要有友好的说明界面和操作提示菜单(以文字显示即可,有能力的
同学可以编写带GUI的程序,额外加分),严禁出现“一运行屏幕一片黑”的情形;
程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。
6、提交课程设计报告前,将源代码(.C或.java文件及其有关的数据/资源文件)用
Winrar打包成单一文件(文件名如“软件141—姓名—马踏棋盘.rar”)拷至班长处,由班长统一提交给教师。
7、课程设计报告中除运行截图、附录等内容可以打印外,其余一律手写,并按要求
附上封面装订后,交至班长处。
班长统一于1月4日(星期三)下午15:30~16:00(如时间有变则另行通知),交至B座6楼数据挖掘研究室。
可选题目(蓝色文字为题目涉及的算法)
1、一元多项式计算器(★★)
问题描述:创建两个一元多项式A和B,计算A+B和A-B并显示。
多项式的项数和每一项的系数/指数在运行时指定。
单链表的合并(结点插入、删除)
2、航空订票系统(★★★★)
问题描述:编写程序模拟航空订票系统,要求实现以下功能:
①允许增、删、改航班信息,包括“航班号/ 机型/ 起降城市/ 起降时间/ 座位数/ 票价等”(所有航班
信息存储在数据文件中,数据结构自定义);
②允许以“航班号/ 起降城市” 等条件查询航班信息;
③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在数据文件中)。
④退票:退票后应修改相关数据文件。
顺序表(或链表)的创建、查找、插入、删除,文件读写(fscanf、fprintf等)。
3、迷宫问题(★★★)
问题描述:迷宫以16*16的矩阵存储在数据文件中(迷宫中的障碍物要占到一定比例),编写非递归的程序求出一条从入口到出口的路径并显示之。
基于回溯思想、栈的应用。
4、约瑟夫环问题(★★)
问题描述:编号是1,2,……,N的N个人按照顺时针方向围坐一圈,每个人持有一个密码(一个正整数)。
一开始任选一个正整数作为报数上限值M,从第一个人开始顺时针方向自1开始顺序报数,报到M时停止报数。
报M的人出列,并将他持有的密码作为新的M值,再从他的顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。
编写程序求出列顺序(采用单循环链表实现,N、M、每个人的密码均在运行时指定)。
循环链表的查找、删除。
5、二叉树的创建和遍历(★★★)
问题描述:根据运行时输入的先序序列创建一棵二叉树,分别对其进行先、中、后、层序遍历并显示遍历结果。
二叉树的创建和遍历。
6、算术表达式的求值(★★★)
问题描述:若干个算数表达式存放在数据文件中(每行一个,操作数支持小数),形如“(6.2+0.3)*1.2+2-3*(2.4/6)”,编写程序计算每个表达式的值。
栈的应用(注意如何将小数样式的字符串转换为对应小数)。
7、二叉查找树的创建、查找、插入和删除(★★★)
问题描述:运行时产生若干个随机整数,依次插入到一棵初始为空的二叉查找树中,并能在其中查找、插入、删除指定的整数。
BST树的查找、插入、删除。
8、校园导游咨询(★★★★★)
问题描述:为本校设计一个校园导游咨询程序,满足以下要求:
①校园地图存储于数据文件中(格式自定,至少15个景点,25条边),包括景点编号、名称、简介、景点
间道路长度等信息;
②能根据“景点编号/ 名称”查询任意景点的相关信息;
③在用户指定出发和目的景点后,能提供两景点间的最短路径信息;
④能为用户提供从指定景点出发游览完其他所有景点的路线信息。
图的创建、遍历、最短路径。
9、校园网布线问题(★★★★)
问题描述:为本校设计一个校园网布线方案,并编写程序满足以下要求:
①校园内建筑物信息、建筑物间的距离等存储于数据文件中(格式自定,至少15个建筑物,25条边),包
括建筑物编号、名称等信息;
②能根据“建筑物编号/ 名称”查询任意建筑物的相关信息;
③施工成本最低且任意两建筑物可以相互通信。
图的创建、遍历、最小生成树。
10、马踏棋盘问题(★★★)
问题描述:一棋子随机放在8×8棋盘的某个方格中,该棋子下一步能走到的方格如图,编写非递归程序满足以下要求:
①每个方格只走一次;
②走遍棋盘上全部64个方格;
③求出所有满足①、②的行走路线(将1,2,…,64依次填入8×8的矩阵。
回溯思想、栈的应用
11、八皇后问题(★★★)
问题描述:编写非递归程序将8个棋子放在8×8棋盘的8个方格中,满足以下要求:
①棋盘的每行每列上有且仅有一个棋子;
②求出所有满足①的解。
回溯思想、栈的应用
12、排序算法性能比较(★★★)
问题描述:编写程序在运行时产生1000个随机整数,分别用冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序对该1000个随机整数进行排序,统计每一种排序算法在执行过程中的比较次数、赋值次数。
排序算法。