南审《数据结构课程设计》个人任务题目一览(2015版)
数据结构课程设计参考题目
数据结构课程设计题目数据结构课程设计题目(大题目)、doc一、公司销售管理系统项目开发基本要求1.客户信息管理:对客户得基本信息进行添加、修改与删除。
2.产品信息管理:对产品得基本信息进行添加、修改与删除。
3.供应商信息管理:对供应商得基本信息进行添加、修改与删除.4.订单信息管理:对订单得基本信息进行添加、修改与删除。
二、高校科研管理系统系统主要用于帮助高校或科研单位管理与维护各项科研相关资料项目开发基本要求1。
系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己得系统口令。
2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心与一般四种情况.3.项目参加人员管理模块包括:显示添加修改删除查询。
4。
项目基本情况模块包括:显示添加修改删除查询。
5.项目获奖情况模块包括:显示添加修改删除查询。
6.期刊论文管理模块包括:显示添加修改删除查询。
7。
著作管理模块包括:显示添加修改删除查询。
8。
科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量得计算与统计。
9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分得计算与统计。
三、网络五子棋对战四、不同排序算法模拟五、科学计算器数据结构课程设计题目1、运动会分数统计任务:参加运动会有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)可以按学校编号查询学校某个项目得情况;可以按项目编号查询取得前三或前五名得学校。
数据结构课程设计题目
数据结构课程设计题目一、题目背景在现代科技发展的背景下,数据结构作为计算机科学的重要基础课程,对于培养学生的编程思维、数据处理能力具有重要的作用。
本篇课程设计将围绕数据结构的实际应用,设计一个能够提升学生数据结构理论与实践能力的题目。
二、题目描述你需要设计一个软件,实现以下功能:能够记录学生信息并进行相关的数据操作。
具体要求如下:1. 学生信息包括:学生学号、姓名、性别、年龄、身高、体重等基本信息;2. 软件需要实现以下操作:a. 添加学生信息:可以手动添加每个学生的详细信息,并将其记录到数据库中;b. 删除学生信息:能够根据学号或姓名删除指定学生的信息;c. 修改学生信息:能够根据学号或姓名修改指定学生的信息;d. 查询学生信息:能够按照学号、姓名、性别、年龄等条件进行学生信息的查询,并将结果以列表形式展示;e. 统计学生信息:能够统计学生的平均年龄、平均身高、平均体重等统计数据,并展示在界面上;f. 数据导入导出:能够将学生信息导入/导出到文件或数据库中,实现数据的持久化存储。
三、设计思路为了实现上述功能,你可以采用以下的设计思路:1. 数据结构选择:可以使用链表、数组、树等数据结构存储学生信息,具体根据功能需求来选择合适的数据结构;2. 界面设计:考虑采用图形界面或者命令行界面,以提供方便的操作方式;3. 数据存储:可以使用文件、数据库等方式进行数据的存储和读取,以实现数据的持久化;4. 算法设计:在实现功能的过程中,需要考虑合适的算法来实现快速的查找、删除和修改等操作;5. 错误处理:在设计过程中,需要考虑各种可能的错误情况,并进行相应的处理和提示。
四、实施步骤为了顺利完成该课程设计,你可以按照以下步骤进行:1. 分析题目需求:仔细阅读以上题目描述,明确实现各项功能的具体要求;2. 设计数据结构:选择合适的数据结构来存储学生信息,考虑数据的增删改查等操作的效率;3. 设计算法:根据功能需求,设计相应的算法来实现各项操作;4. 实现界面:根据选择的界面方式,设计相应的图形界面或命令行交互界面;5. 实现功能:按照题目要求,逐个实现各项功能,并进行测试;6. 完善细节:对界面进行美化,完善用户交互体验,处理各种错误情况;7. 测试与调试:对整个软件进行全面的测试,并进行调试修复可能存在的问题;8. 编写报告:撰写课程设计报告,详细记录设计过程、实现方法、遇到的问题以及解决方案等。
2015年云南省数据结构试题集(10套题并附带答案)考试答题技巧
A.SA+141 B.SA+144 C.SA+222 D.SA+255
20、下述排序方法中,时间性能和待排序记录的初始状态无关的是( )
A 插入排序和快速排序 B 归并排序和快速排序
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
26、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
40、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
D.队列的操作方式是先进后出
11、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
12、下述排序方法中,时间性能和待排序记录的初始状态无关的是( )
A 插入排序和快速排序 B 归并排序和快速排序
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
32、如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。
A.单链表 B.双链表 C.单循环链表 D. 顺序表
《数据结构》课程设计题目及要求2015
一、关于本次课程设计1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过4人(一个班之内)。
2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、不及格(1分)。
3、题目有难易和工作量大小之分(具体见题目后的“星级”),为体现公平,请参见下表,请同学们结合自身情况选择题目。
4、课程设计报告和源代码严禁抄袭,报告要严格遵照“课程设计任务书”的要求来撰写,大致包含以下内容:①需求分析:叙述每个模块的功能性要求;②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结构(如果指定存储结构请写出该存储结构的struct或typedef定义);③详细设计:各个算法的实现源代码(注意只写算法的源代码,完整的源代码放在附录里面)。
源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;④调试分析:需要测试数据的至少给出3组测试数据,记录每一组数据输出的结果;并用文字描述调试过程中遇到的问题(问题是哪些?问题如何得以解决?);⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考等内容(严禁套话);⑥附录:完整的源代码(必须正确缩进)。
5、程序运行时,要有友好的说明界面和操作提示菜单(以英文文字显示即可),严禁出现“一运行屏幕一片黑”的情形;程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。
二、可选题目1、一元多项式计算器(★★)问题描述:创建两个一元多项式A和B,计算A+B, A-B, A*B并显示。
多项式的项数和每一项的系数/指数在运行时指定。
2、航空订票系统(★★★★)问题描述:编写程序模拟航空订票系统,要求实现以下功能:①允许增、删、改航班信息,包括“航班号/ 机型/ 起降城市/ 起降时间/ 座位数/ 票价等”(所有航班信息存储在数据文件中,数据结构自定义);②允许以“航班号/ 起降城市” 等条件查询航班信息;③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在数据文件中)。
数据结构综合设计题目列表
书中算法只有思想,没有代码,实现不易。 已掌握并实现线性表操作的同学,可选此 题目。
26.实现所有的排序方法。(4人)
书中大多数算法有代码,讲解较为详细。 有一些算法有难度。
已掌握并实现线性表操作的同学,可选 此题目。
也许不能实现全部的算法,可以实现部 分算法,但一定要实现几个有难度的算法, 不要只实现几个简单的算法。这样编程能力 没有显著的提高。
4.飞机游戏的实现(2人) 该游戏的基本要求:飞机能飞,有声音, 鼠标与键盘控制灵活、合理,能发射子弹, 碰雷爆炸。
5.精灵动画之实现(2人)。
6.游戏中部分主要功能之模拟,如寻路功 能、地图之生成之模拟。(2人)
游戏可以设计的简单,也可以复杂,这取决于 你个人的能力,但界面一定要美观,操作方便。
7.一元多项式的各种运算(10人)
除了考虑书中已提供的加法功能外,可以 实现更多的运算。
该算法主要涉及线性表的链式操作,是数 据结构中最基本,也是日后应用最常用的操作, 也是后续课程认为学生在这方面编程能力最差 的一部分知识。
没有完整控制过链表的同学只能选择此题 目,因为这是最基本的知识,必须掌握。
分析过程需要综合书中全部知识,实现可能 只会使用书中部分知识。
因为没有任何可以参考的方案,全部需要自 己分析与考虑,建议能力强的同学选择此题目。
3.管理系统的设计与实现。(4人)
实现的管理系统要求功能较全,且能与现 实生活接近考虑数据量大,如有上百万条的情 况。
主要用线性表的知识(顺序与链式存储都 会涉及),涉及查找与排序算法,文件的知识 是必须。
要求最后关于各种静态查找表的性能比较 得出一个结论。
23.实现所有的动态查找表。(4人) 该部分算法有一定的难度,尤其二叉排 序树与平衡二叉树,涉及树的插入与删除等 复杂操作。实现不易,尽管书中给出的代码 较为详细 建议能力强的同学选择此题目。
2015年数据结构期末考试题及答案,推荐文档(2021年整理)
2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。
2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C .A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便.6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A .(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。
《数据结构》课程设计题目
《数据结构》课程设计题目《数据结构》课程设计题目课程设计题一:学生成绩管理系统设计目的:1.2.3. 掌握线性链表的建立。
掌握线性链表的基本操作。
掌握查找的基本算法。
设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。
设计要求:1.2.3.写出系统需求分析,并建模。
编程实现,界面友好。
输出操作前后的结果。
课程设计题二:停车场管理系统设计目的:1.2.3.4. 掌握栈和队列的建立。
掌握栈和队列的基本操作。
深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。
每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
设计要求:1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。
数据结构课程设计题目及要求(2015-2016-2)概论
课程设计题目每位同学在本次课程设计期间须选择两道题目(1,2任选一题,3.4任选一题)并按照要求完成。
1考试报名管理系统1.1题目简介考试报名工作给各髙校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量,报名数据手工录入既费时又会不可避免地出现错误,同时也给不少学生以可乘之机。
本项目是对考试报划管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息:输出考生信息;査询考生信息:添加考生信息:修改考生信息;删除考生信息。
1.2设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先泄义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
1.3数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。
我们知道,线性表的顺序存储结构的特点是逻辑关系相邻的两个元素在物理位豊上也相邻, 因此可以随机存储表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
然而,从另一个方而来看,这个特点也铸成了这种存储结构的弱点:在做插入或删除操作时,需要移动大量元素。
为克服这一缺点,我们引入另一种存储形式一一链式存储。
链式存储是线性表的列一种表示方法,由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的弱点,但同时也失去了顺序表可随机存取的特点。
链式存储的优点是插入或删除元素时很方便,使用灵活。
缺点是存储密度小,存储空间利用率低。
事实上,链表插入、删除运算的快捷是以空间代价来换取时间。
顺序表适宜于做查找这样的静态操作:链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
数据结构课程设计参考题目-V1
数据结构课程设计参考题目-V1数据结构课程设计参考题目1.实现一个链表的增删改查操作2.实现一个栈并能利用栈来解决迷宫问题3.实现一个队列并能利用队列来解决约瑟夫问题4.实现一个二叉树并能进行遍历操作(前序、中序、后序遍历)5.实现一个堆并能用堆来进行排序操作6.实现一个哈希表,并能用哈希表来进行查找操作7.实现一个图,能够对图进行深度优先遍历和广度优先遍历8.实现一个红黑树,并能够进行插入、删除操作9.实现一个AVL树,并能够进行插入、删除操作10.实现一个并查集,并能够用来解决连通性问题文章正文数据结构是计算机科学中非常重要的一门课程,它为计算机科学家提供了用于存储和组织数据的基本工具。
因此,学习数据结构不仅是理论课,更需要具备实践能力。
以下是数据结构课程设计的参考题目。
1.链表操作链表是一种简单的数据结构,其操作包括增加、删除、查找和修改。
在链表操作的基础上还可以实现更复杂的数据结构,如队列和栈。
链表的设计可以由单链表、双向链表和循环链表三种形式来实现。
在设计时要考虑到时间复杂度和空间复杂度的问题。
因此,在设计链表的增删改查操作时,要考虑性能问题。
2.栈的操作栈这种数据结构用来解决后进先出(LIFO)的问题,可以用来解决一些非常实际的数学问题,如计算表达式等。
栈可以用数组或链表来实现,其中链表的实现方式更为常见。
在实现栈时,要考虑到两个问题:栈的空间大小和栈空时是否考虑垃圾回收。
3.队列操作队列是一种先进先出(FIFO)的实现,一般链表的实现方式比较常见,也可以用数组来实现。
队列的操作包括入队、出队、查找和修改等操作。
队列在实现时,要注意两个问题:队列的空间大小和队列为空时的处理方式。
4.二叉树的遍历二叉树是一种具有重大意义的数据结构,其遍历方式有前序遍历、中序遍历和后序遍历三种方式。
每一种遍历方式都是有其特点的,它在解决问题上提供了很好的思路。
二叉树的实现要考虑其时间复杂度和空间复杂度。
《数据结构课程设计》小组任务题目一览
1.运动会分数统计(限3人完成)【系统任务】参加运动会有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)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称【输出形式】有合理的提示,各学校分数为整形【界面要求】有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
【存储结构】学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;【测试数据】要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;2.飞机订票系统(限3人完成)【系统任务】通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
2015数据结构实践题目计科13级
基本操作:
InitLinkList(&L)
操作结果:构造一个空的单链表L.
InsLinkList(&插入到单链表L的pos位置
DelLinkList(&L,pos,&e)
初始条件:单链表L已存在
{ char name[15];//姓名
char department[18];//单位
char gender;//性别
unsigned int age;//年龄
unsigned long telephone;//电话
unsigned long wage;//工资
unsigned long num;//职工号
int englishscore;//英语成绩
struct student *next; };
操作:
1.成绩信息输入;
2.统计总分;
3.排序;
4.查询
4、【订票系统】
任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓)可以输入起飞抵达城市,查询飞机航班情况;
3、课程实践报告:(保存在word文档中,文件名要求按照"姓名-**课程实践报告")
报告按所给样例完成,样例见文件后边。
(二)纸质版:课程设计报告A4打印一份,封面由学委统一监督打印,全班保持封面格式一致。
提交日期:2015年9月16日下午4点,学委交到教师备课室教师办公桌。
南审《数据结构课程教学设计》个人说明任务题目一览(2015年度版)
第二章线性表顺序表的操作1、顺序表的建立(从键盘或者数组中导入数据)Status InitList(SqList &L){ //构造一个空的顺序表L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;}2、顺序表按照值查找位置int LocateElem(SqList L, ElemType e){ //根据数据元素的值,返回它在线性表L中的位置int i=0;while ((i<=L.length)&&(*(L.elem+i-1)!=e))i++;if (i<=L.length)return i;elsereturn(-1);}3、顺序表按照序号查找元素的值Status GetElem(SqList L,int i,ElemType &e){ //根据数据元素在线性表L中的位置,返回它的值if(i<1||i>L.length )return ERROR;e=*(L.elem+i-1);return OK;}4、顺序表数据元素的插入Status ListInsert(SqList &L,int i,ElemType e){ // 在L中第i个位置之前插入新的数据元素e,L的长度加1 ElemType *p,*q,*newbase;if(i<1||i>L.length+1)return ERROR;if(L.length>=L.listsize){newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q; --p)*(p+1)=*p;*q=e;++L.length ;return OK;}5、顺序表数据元素的删除Status ListDelete(SqList &L,int i,ElemType &e){ //删除L的第i个数据元素,并用e返回其值,L的长度减1ElemType *q,*p;if(i<1||i>L.length)return ERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p) *(p-1)=*p;--L.length;return OK;}6、顺序表数据元素的输出Status visit(SqList L){ //按序输出顺序表的各个元素值int i;for(i=1;i<=L.length;i++)printf("%d ",*(L.elem+i-1));cout<<endl;printf("L.elem=%u L.length=%d L.listsize=%d\n",L.elem,L.length,L.listsize);return OK;}单链表的操作1、单链表的建立void CreateList(LinkList &L,int n){ // 逆位序输入n个元素的值,建立带表头结构的单链线性表Lint i;LinkList p;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;printf("请输入%d个数据\n",n);for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));scanf("%d",&p->data);p->next=L->next;L->next=p;}}void CreateList2(LinkList &L,int n){ // 正位序输入n个元素的值,建立带表头结构的单链线性表int i;LinkList p,q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=L;printf("请输入%d个数据\n",n);for(i=1;i<=n;i++){p=(LinkList)malloc(sizeof(LNode));scanf("%d",&p->data);q->next=p;q=q->next;}p->next=NULL;}2、单链表的输出Status visit(LinkList L){ //按序输出单链表的各个元素值LinkList p=L->next;while(p){printf("%d ",p->data);p=p->next;}printf("\n");return OK;}3、单链表结点的插入Status ListInsert(LinkList &L,int i,ElemType e){LinkList p,s;p=L;int j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1)return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}4、单链表结点的删除Status ListDelete(LinkList&L,int i,ElemType e){LinkList p,q;p=L;int j=0;while(p->next&&j<i-1){p=p->next;++j;}if(!(p->next)||j>i-1)return ERROR;q=p->next;p->next=q->next;e=q->data;free(q);return OK;}5、单链表中按照结点的值查找结点的位序int LocateElem(LinkList L,ElemType e){ //返回L中第1个值为e 的数据元素的位序,若这样的数据元素不存在,则返回值为0 int i=0;LinkList p=L->next;while(p){ i++;if(p->data==e)return i;p=p->next;}return 0;}6、单链表中按照结点的位序返回结点的值Status GetElem(LinkList L,int i,ElemType &e){ // L为带头结点的单链表的头指针。
暨南大学计算机830数据结构2015年真题
S=0;
for( i=0;i<N; i++)
for(j=0; j<2N+1; j++)
S++;
5.深度为h的满二叉树共有个结点。
6.一棵m阶非空B-树,每个结点最多有棵子树,除根之外的所有非终端结点至少有棵子树。
7.在单链表中,若要在指针p所指结点后插入指针s所指结点,则需要执行下列两条语句:。
A.n-i B.n-i-1 C.n-i+1 D.不确定
3.已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是()。
A.s= p->next; p=p->next; free(s);B.p=p->next; free(p);
C.s= p->next; p->next=s->next; free(s);D.p=p->next; free(p->next);
A. n-1 B. 2n-1 C. n+1 D. 2n+1
10.在内部排序中,排序时不稳定的有()。
A.插入排序B.冒泡排序C.快速排序D.归并排序
11.一个具有500个结点的完全二叉树具有一个孩子的结点个数最多为()。
A.1 B.250 C.0 D.249
考试科目:数据结构共5页,第1页
12.从未排序序列中取出一个元素,并将其依次插入已排序序列的方法,称为()。
if (!visited[w])⑩;
}
考试科目:数据结构共5页,第4页
六.编写算法(25分)
1.已知线性表中的元素按值递增有序排列,并以带头结点的单链表作存储结构。试编写算法,删除表中所有值大于x且小于y的元素(若表中存在这样的元素),同时释放被删除结点空间。(10分)
2015年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题【圣才出品】
2015年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题(回忆版)数据结构部分(45分)一、选择题(2×10)1.13年第一题原题2.队列rear和length求head3.数组a[0…8][0…3],每个元素6字节,共多少字节,下面忘了4.树,只有叶节点和度为2的节点,当树有n个非叶节点,问有多少叶节点,又问各个叶节点的层数和为多少(根为0层)5.高度为h(根为0层)的完全二叉树,最少有多少个节点,最多多少个接下去5题比较简单有排序什么的,我忘了二、大题11.画最小生成树(10分)12.写出一个树的类定义。
树的孩子节点表示法,左指针指向孩子节点,右孩子指向兄弟节点。
包括成员属性和方法,用C++语言,要写类声明和基本的变量和方法,并且写出求树高度的递归方法,15分。
(这道题很多之前的年份考过,要求的参考书目是java版的)软件工程部分(45分)13.名词解释:软件工程(5分)软件需求(5分)14.解释面向对象体系结构风格及其优缺点(5分)15.给了一个旅游路线设计的需求规格,让你根据这个需求规格写出分析类图。
(需求规格就是很常规的那种,包括前置条件啊,后置条件,操作流程,额外要求等)10分16.代码改进,一个init()方法,把几个字段的init都放到同一个方法里面,让你说出哪里不好,并且改进(10分)17.代码改进,给了一段代码,里面包含了大量的switch-case语句,就是两个操作数和一个操作符(=,!=,<,<=,>,>=)的函数,分析质量低的地方,让你改进(10分)操作系统部分(35分)12道选择题1.Unix系统的inode节点包含12个直接地址和一级、二级、三级地址,每一个盘块包含1024Byte,含有256个盘块地址。
请问28MB的文件要占用多少个直接、一级、二级、三级盘块。
3分2.页面置换算法,写出OPT,FIFO,LRU,Clock方式,标出访问位和指针最近最久未使用,时钟。
数据结构课程设计题目表
《数据结构》课程设计课题表课题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.宿舍管理查询软件(限1 人完成)任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:采用交互工作方式建立数据文件,包括学生信息、宿舍信息、住宿信息,学生信息按关键字(姓名、学号)进行排序(排序方法自选,不能相同);查询: (用二分查找实现以下操作)按姓名查询按学号查询(用顺序查找实现以下操作)按房号查询3.校园导航问题(限1 人完成)设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
要求:能增加场所4.图书借阅管理系统(限1 人完成)(顺序或链式存储)主要分为两大功能:1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);5.学生成绩管理(限1 人完成)(顺序或链式存储)包括:课程信息,学生信息等;能增加课程或学生。
实现功能:输入、输出、插入、删除、查找、显示、保存、排序、退出。
6.活期储蓄帐目管理(限1 人完成)活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
2015-数据结构课程设计题目
2015年10月30日下午4点到4点30分之间上交到创新大楼西4楼4051、选好题目:每人一题。
2、独立思考,独立完成:按照软件工程的流程设计与开发系统。
首先写好需求分析。
利用模块化的编程思想来完成系统的设计,给出详细地分析过程,画出程序流程图。
编写程序,调试各模块。
学会从问题入手,分析研究数据结构中数据表示和数据处理的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储结构和相应的操作算法,并初步掌握时间和空间分析技术。
要求书写符合软件工程规范的文件。
课程设计中各任务的设计和调试要求独立完成。
3、做好上机准备:明确课程设计任务,提高课程设计认识。
做好资料搜集,上网查询所需资料,认真独立完成问题分析和设计内容,编写程序,准备好测试数据,要充分利用好时间。
4、上机任务:按照上机之前准备的实验程序及测试数据进行调试,调试过程要规范,认真记录调试结果及调试过程中出现的问题,积极解决问题,最终得到正确的源程序。
5、6、成果提交课设报告、程序源代码和程序的说明文件必须上交。
按照课设报告模板认真书写课程设计报告。
纸介质课设报告(必须采用B5纸打印)电子文档包括“源代码(*.cpp)”、“可执行文件(*.exe)”、“课程设计报告(*.doc)”和一个说明文件(如果有的话),放入一个以“课设题目(姓名)”为名字的文件夹中。
注意:1)独立完成,源代码雷同者视为抄袭,双方均以不及格论处;2)课程设计报告60% 以上雷同视为抄袭,双方均以不及格论处。
3)无课设报告、程序或课设报告抄袭者,成绩为不及格。
注意:一旦发现原封不动的使用网上下载或某个书籍中的源代码和/或课程设计报告的,成绩为不及格。
1、运动会分数统计问题描述:参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章线性表顺序表的操作1、顺序表的建立(从键盘或者数组中导入数据)Status InitList(SqList &L){ //构造一个空的顺序表L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;}2、顺序表按照值查找位置int LocateElem(SqList L, ElemType e){ //根据数据元素的值,返回它在线性表L中的位置int i=0;while ((i<=L.length)&&(*(L.elem+i-1)!=e))i++;if (i<=L.length)return i;elsereturn(-1);}3、顺序表按照序号查找元素的值Status GetElem(SqList L,int i,ElemType &e){ //根据数据元素在线性表L中的位置,返回它的值if(i<1||i>L.length )return ERROR;e=*(L.elem+i-1);return OK;}4、顺序表数据元素的插入Status ListInsert(SqList &L,int i,ElemType e){ // 在L中第i个位置之前插入新的数据元素e,L的长度加1 ElemType *p,*q,*newbase;if(i<1||i>L.length+1)return ERROR;if(L.length>=L.listsize){newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q; --p)*(p+1)=*p;*q=e;++L.length ;return OK;}5、顺序表数据元素的删除Status ListDelete(SqList &L,int i,ElemType &e){ //删除L的第i个数据元素,并用e返回其值,L的长度减1ElemType *q,*p;if(i<1||i>L.length)return ERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p) *(p-1)=*p;--L.length;return OK;}6、顺序表数据元素的输出Status visit(SqList L){ //按序输出顺序表的各个元素值int i;for(i=1;i<=L.length;i++)printf("%d ",*(L.elem+i-1));cout<<endl;printf("L.elem=%u L.length=%d L.listsize=%d\n",L.elem,L.length,L.listsize);return OK;}单链表的操作1、单链表的建立void CreateList(LinkList &L,int n){ // 逆位序输入n个元素的值,建立带表头结构的单链线性表Lint i;LinkList p;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;printf("请输入%d个数据\n",n);for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));scanf("%d",&p->data);p->next=L->next;L->next=p;}}void CreateList2(LinkList &L,int n){ // 正位序输入n个元素的值,建立带表头结构的单链线性表int i;LinkList p,q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=L;printf("请输入%d个数据\n",n);for(i=1;i<=n;i++){p=(LinkList)malloc(sizeof(LNode));scanf("%d",&p->data);q->next=p;q=q->next;}p->next=NULL;}2、单链表的输出Status visit(LinkList L){ //按序输出单链表的各个元素值LinkList p=L->next;while(p){printf("%d ",p->data);p=p->next;}printf("\n");return OK;}3、单链表结点的插入Status ListInsert(LinkList &L,int i,ElemType e){LinkList p,s;p=L;int j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1)return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}4、单链表结点的删除Status ListDelete(LinkList&L,int i,ElemType e){LinkList p,q;p=L;int j=0;while(p->next&&j<i-1){p=p->next;++j;}if(!(p->next)||j>i-1)return ERROR;q=p->next;p->next=q->next;e=q->data;free(q);return OK;}5、单链表中按照结点的值查找结点的位序int LocateElem(LinkList L,ElemType e){ //返回L中第1个值为e 的数据元素的位序,若这样的数据元素不存在,则返回值为0 int i=0;LinkList p=L->next;while(p){ i++;if(p->data==e)return i;p=p->next;}return 0;}6、单链表中按照结点的位序返回结点的值Status GetElem(LinkList L,int i,ElemType &e){ // L为带头结点的单链表的头指针。
当第i个元素存在时,其值赋给e并返回OK,否则返回 ERRORint j=1;LinkList p=L->next;while(p&&j<i){p=p->next;j++;}if(!p||j>i)return ERROR;e=p->data;return OK;}7、单链表的初始化(新建一个只含头结点的单链表)Status InitList(LinkList &L){ // 构造一个空的单链表LL=(LinkList)malloc(sizeof(LNode));if (!L)exit(OVERFLOW);L->next=NULL;return OK;}8、单链表的销毁(所有结点都要销毁)Status DestroyList(LinkList &L){ // 销毁单链表LLinkList q;while(L){q=L->next;free(L);L=q;}return OK;}9、求单链表的长度int ListLength(LinkList L){ //返回L中数据元素个数if(L==0)return 0;int i=0;LinkList p=L->next;while(p){ i++;p=p->next;}return i;}10、两个单链表的归并void MergeList(LinkList &La, LinkList &Lb, LinkList &Lc){ //已知线性表La和Lb中的数据元素按值非递减排列//归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列LinkList pa,pb,pc;pa=La->next;pb=Lb->next;Lc=pc=La;while(pa&&pb){if(pa->data<=pb->data){ pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next;}}pc->next=pa?pa:pb;free(Lb);}第三章栈和队列栈的操作1、初始化一个顺序栈(从键盘或者数组中导入数据)Status InitStack(SqStack &S){S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}2、判断栈是否为空Status StackEmpty(SqStack S){ // 若栈S为空栈,则返回TRUE;否则返回FALSEif(S.top==S.base)return TRUE;else return FALSE;}3、取栈顶元素Status GetTop(SqStack S,SElemType &e) //在教科书第47页{ // 若栈S不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR if(S.top==S.base)return ERROR;e=*(S.top-1);return OK;}4、元素进栈Status Push(SqStack &S,SElemType e){ //插入元素e为栈S新的栈顶元素。