2015数据结构实验手册

合集下载

2015数据结构实验手册资料

2015数据结构实验手册资料

《数据结构实验》指导书Data Structures and Algorithms Laboratory Projects王金荣2014-09-11目录1《数据结构实验》课程实验教学大纲--------------------------------------12 实验准备: 如何使用VC 6.0? ----------------------------------------------33 Projects---------------------------------------------------------------------------8 3.1 Project 1: 算法性能测量-------------------------------------------------8 3.2 Project 2: 有序表归并实验---------------------------------------------10 3.3 Project 3: 数据转换------------------------------------------------------11 3.4 Project 4: 二叉树遍历实验---------------------------------------------12 3.5 Project 5-1: 堆排序算法实现------------------------------------------13 3.6 Project 5-2: 归并排序算法实现---------------------------------------14 3.7 Project 5-3: 快速排序算法实现---------------------------------------15 3.8 Project 6-1: 图的深度优先搜索---------------------------------------16 3.9 Project 6-2: 图的广度优先搜索---------------------------------------173.10 Project 7: 散列实验---------------------------------------------------184.1 ACM题目-------------------------------------------------------------------19 4.1 ACM 1: ACboy needs your help again!-------------------------------19 4.2 ACM 2: Jumping the Queue--------------------------------------------21 4.3 ACM 3: Median ----------------------------------------------------------234.4 ACM 4: Ignatius and the Princess I------------------------------------255 实验报告格式-----------------------------------------------------------------28 6实验报告上交说明-----------------------------------------------------------291《数据结构实验》课程实验教学大纲课程中文名称:数据结构实验课程英文名称:Data Structure Practices实验课程性质:独立设课课程编码:044209101一、学时、学分课程总学时:34 实验学时:34课程总学分:1 实验学分:1二、适用专业及年级计算机科学与技术专业,软件工程专业,第二学期三、实验教学目的与基本要求“数据结构实验”的总体目标是:通过实验使学生对课堂讲授的内容有实际的体验,加深对概念、算法、技术的理解、掌握、应用,并激发学生进一步的思考和发挥,注重培养学生的学习兴趣和创新思维。

《数据结构》实验指导书

《数据结构》实验指导书

数据结构实验课程大纲本大纲是针对计算机科学与技术专业本科对数据结构的基本要求而编写的。

一、目的与任务数据结构是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。

通过上机作业,要求在数据结构的逻辑特性和存贮表示、基本数据结构的选择和应用、算法设计及其实现等方面加深对课程基本内容的理解。

同时,在程序设计方法、程序设计风格及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。

提高分析问题和用计算机解决实际问题的能力。

为后续课程的学习以及为应用软件特别是非数值软件的开发打下良好的理论基础和实践基础。

二、课程内容1.顺序表的表示和运算(0-2学时)2.链表的表示和运算(2学时)3.栈的应用(2-3学时)4.队列的应用(2-3学时)5.二叉树的基本操作和应用(2-6学时)6.图及其应用(2-6学时)7.排序(4-6学时)8.查找(2-4学时)三、基本要求1.逐步理解和掌握程序设计和上机操作的基本方法和技能。

2.理解并实现各种基本数据结构的存贮表示、运算方法及其典型应用;学会根据实际问题的要求设计算法的数据结构,并具有一定的比较和选用数据结构及算法的能力。

3.理解并实现常用的查找和排序的基本方法。

四、学时分配五、实验内容注:带*的内容以及练习与思考题,可根据实际学时、专业方向特点等具体要求,做相应调整或从略。

实验一、顺序表实验目的:熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。

实验要求:了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。

实验内容:编写程序实现下列的要求:(1) 设数据元素为整数,实现这样的线性表的顺序存储表示。

(2) 键盘输入10个数据元素,利用顺序表的基本操作,建立该表。

(3) 利用顺序表的基本操作,找出表中的最大的和最小的数据元素(用于比较的数据元素为整数)。

(4) * 若数据元素为学生成绩(含姓名、成绩等字段),重新编程,实现上面的要求。

要求尽可能少地修改前面的程序来得到新程序。

(完整版)数据结构实验教学手册

(完整版)数据结构实验教学手册

《数据结构》课程实验教学手册姓名:王俊东学号:1101120216专业:计算机科学与技术班级:2012 级 2 班任课教师:王爽时间:2013-2014 年度第1 学期综合成绩:许昌学院计算机科学与技术学院《数据结构》课程实验教学手册计算机科学与技术学院《数据结构》课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。

现将实验报告撰写的有关内容说明如下:1、实验预习报告必须在实验前完成。

2、实验时带好实验手册方可进行实验。

3、实验时按实验预习报告内容进行实验。

并如实填写实验过程及实验小结。

4、实验结束后填写通过后的源程序。

通过后的源程序可以手写也可以打印粘贴。

实验情况一览表实验一实验名称顺序表及其应用实验性质验证性实验学时数2学时printf("请选择正确的操作!\n");break;}}while(choice!=0);printf("谢谢使用!\n");return 0;}四实验小结初步了解线性表的顺序存储结构,及其定义格式。

掌握在顺序表上进行插入、删除等操作的算法。

但在顺序表的操作上不是十分熟练。

五成绩实验二实验名称单链表及其应用实验性质综合性实验学时数4学时四实验小结初步了解线性表的链式存储结构,及其定义格式。

掌握了在链表上进行插入、删除等操作的算法。

对链表的了解不是很深入,在其使用上往往会犯一些错误比如在链表中进行插入插不到指定位置,删除时位置错误等。

五成绩实验三实验名称线性表综合练习实验性质设计性实验学时数6学时四实验小结对链式表有了进一步的了解,能够利用链式表解决一些实际问题。

了解了链式表的优势,他不会造成空间的浪费,对于插入和删除操作上链式表比顺序表有明显的优势。

五成绩实验四实验名称栈和队列及其应用实验性质设计性实验学时数4学时四实验总结对栈和队列有了初步的了解,他们都是一种特殊的操作受限制线性表,栈的特点是先进后出而队列的是先进先出。

数据结构实验指导书(本科正式)

数据结构实验指导书(本科正式)

《数据结构》实验指导书实验一线性表【实验目的】1、掌握用Turbo c上机调试线性表的基本方法;2、掌握线性表的基本操作,插入、删除、查找以及线性表合并等运算在顺序存储结构和链式存储结构上的运算;3、运用线性表解决线性结构问题。

【实验学时】4 学时【实验类型】设计型【实验内容】1、顺序表的插入、删除操作的实现;2、单链表的插入、删除操作的实现;3、两个线性表合并算法的实现。

(选做)【实验原理】1、当我们在线性表的顺序存储结构上的第i个位置上插入一个元素时,必须先将线性表中第i个元素之后的所有元素依次后移一个位置,以便腾出一个位置,再把新元素插入到该位置。

若是欲删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置;2、当我们在线性表的链式存储结构上的第i个位置上插入一个元素时,只需先确定第i个元素前一个元素位置,然后修改相应指针将新元素插入即可。

若是欲删除第i个元素时,也必须先确定第i个元素前一个元素位置,然后修改相应指针将该元素删除即可;3、详细原理请参考教材。

【实验步骤】一、用C语言编程实现建立一个顺序表,并在此表中插入一个元素和删除一个元素1、通过键盘读取元素建立线性表;2、指定一个元素,在此元素之前插入一个新元素;3、指定一个元素,删除此元素。

二、用C语言编程实现建立一个单链表,并在此表中插入一个元素和删除一个元素1、通过键盘读取元素建立单链表;2、指定一个元素,在此元素之前插入一个新元素;3、指定一个元素,删除此元素。

三、用C语言编程实现两个按递增顺序排列线性表的合并1、编程实现合并按递增顺序排列的两个顺序表算法;2、编程实现合并按递增顺序排列的两个单链表算法。

【思考问题】结合实验过程,回答下列问题:1、何时采用顺序表处理线性结构的问题为最佳选择;2、何时采用链表处理线性结构的问题为最佳选择。

【实验报告要求】1、根据对线性表的理解,如何创建顺序表和单链表;2、实现顺序表插入和删除操作的程序设计思路;3、实现链表插入和删除操作的程序设计思路;4、实现两表合并操作的程序设计思路;5、调试程序过程中遇到的问题及解决方案;6、本次实验的结论与体会。

《数据结构》实验指导书

《数据结构》实验指导书

数据结构实验指导书吉林大学珠海学院计算机系2012.12实验目的与要求《数据结构》是计算机学科重要的专业基础课,北京市高校已将该课作为理工科非计算机专业的提高课程,北京大学将此课列为理工科非计算机专业必修课已经超过15 年。

该课程主要研究信息在计算机中的组织和表示方法。

上机实验是本课程教学至关重要的环节,通过上机实验,使学生在数据结构的逻辑结构定义、存储表示、操作的实现、数据结构的选择和应用、算法实践等方面加深对课程内容的理解,训练学生进行复杂程序设计的技能和培养良好程序设计的习惯。

考虑到大一上学期学习过C程序设计,本学期有C课程设计和C++程序设计,故数据结构课程的实验不安排验证性实验,按课程设计要求。

具体说是期初布置题目,按学号顺序确定如下题目,学生自己准备,期中检查,15周开始验收。

验收时间安排在周末。

实验内容从以下题目中选一题题目一、航空客运订票系统题目二、文章编辑题目三、宿舍管理查询软件题目四、校园导航系统题目五、散列法的实验研究题目六、小型图书馆管理系统(链表的插入,排序,查询,删除)题目七、学生搭配问题题目八、敢死队问题题目九、教学计划编制问题题目十、活期储蓄帐目管理题目十一、通讯录的制作题目十二、二叉排序树的实现题目十三、利用栈求表达式的值题目十四、走迷宫游戏题目十五、顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现题目十六、线索二叉树的应用题目十七、稀疏矩阵实现与应用题目十八、树的应用题目十九、图的遍历和生成树求解实现题目二十、排序综合题目二十一、纸牌游戏题目二十二、利用栈求表达式的值,可供小学生作业,并能给出分数题目二十三、数制转换问题题目二十四、停车场问题题目二十五、学生成绩管理系统题目二十六、哈夫曼编码/译码器题目二十七、特殊矩阵的压缩存储算法的实现题目二十八、产品进销存管理系统题目二十九、客户消费积分管理系统题目三十、约瑟夫环题目三十一、任意长的整数加法题目三十二、广义表的应用题目三十三、关键路径问题题目三十四、构造可以使n个城市连接的最小生成树题目三十五、神秘国度的爱情故事题目三十六、利用Hash技术统计C源程序中关键字的频度题目一、航空客运订票系统通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

数据结构 实验指导手册

数据结构  实验指导手册

数学与计算机科学学院计算机科学与技术专业
《数据结构》课程实验
指导手册
目录
实验1:顺序表的定义及其相关操作算法的实现 (1)
实验2:链表的定义及其相关操作算法的实现 (2)
实验3:栈和队列的定义及其基本操作算法的实现 (4)
实验4:串模式匹配算法的设计与实现 (5)
实验5:二叉树的创建、遍历及其它基本操作的实现 (6)
实验6:哈夫曼树及哈夫曼编码的算法实现 (7)
实验7:查找算法的实现(1) (8)
实验8:查找算法的实现(2) (9)
实验9:几个主要排序算法的实现与比较 (10)
实验1:顺序表的定义及其相关操作算法的实现
实验2:链表的定义及其相关操作算法的实现
实验3:栈和队列的定义及其基本操作算法的实现
实验4:串模式匹配算法的设计与实现
实验5:二叉树的创建、遍历及其它基本操作的实现
实验6:哈夫曼树及哈夫曼编码的算法实现
实验7:查找算法的实现(1)
实验8:查找算法的实现(2)
实验9:几个主要排序算法的实现与比较。

2015数据结构课程实验内容与要求

2015数据结构课程实验内容与要求

数据结构课程实验内容与要求时间:9-16周一34节地点:工科楼北楼六楼计算机大机房选做四个实习题(同一章只能选一题,难度系数高的题有加分)《数据结构》课程设计题目及要求一、数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。

有问题及时主动通过各种方式与教师联系沟通。

2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。

3.课程设计按照教学要求需要两周时间完成,两周中每天至少要上2小时的上机来调试C或C++语言设计的程序。

学院安排上机时间学生不得缺席。

4.实习报告:按习题教材要求执行。

二、上交相关内容要求上交的成果的内容必须由以下四个部分组成,缺一不可1.上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2.上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;3.课程设计报告:(保存在word文档中,文件名要求按照"姓名-学号-课程设计报告题目"起名,如文件名为"张三-001-二叉树动态演示".doc)按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求。

b)概要设计在此说明每个部分的算法设计说明(可以是描述每一个算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。

c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。

《数据结构》实验指导书(新教学计划)

《数据结构》实验指导书(新教学计划)

数据结构实验指导书数据结构实验指导书目录数据结构实验指导书 (1)目录 (1)实验指导书概述 (2)实验题目 (3)实验一单链表的插入、删除 (3)[实验目的] (3)[实验内容] (3)[测试数据] (3)[实现提示] (3)实验二栈及其应用 (5)[实验目的] (5)[实验内容] (5)[测试数据] (5)实验三二叉树的递归算法 (5)[实验目的] (5)[实验内容] (6)[测试数据] (6)实验四查找及排序算法的应用 (7)[实验目的] (7)[实验内容] (7)[测试数据] (7)实验指导书概述“数据结构”是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。

本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了多种常用的查找和排序技术,并对其进行了性能分析和比较,内容非常丰富。

本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。

由于以下原因,使得掌握这门课程具有较大难度:∙内容多,时间短,给学习带来困难;∙贯穿全书的动态链表存储结构和递归技术是学习中的重点和难点;∙隐含在各部分的技术和方法丰富,也是学习的重点和难点;∙先修课程中所介绍的专业性知识不多,加大了学习难度。

由于数据结构课程的技术性与实践性,《数据结构课程实验》的设置十分必要。

为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。

数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。

在掌握基本算法的基础上,掌握分析、解决实际问题的能力。

通过实验实践内容的训练,突出构造性思维训练的特征, 提高学生组织数据及编写大型程序的能力。

数据结构实验报告

数据结构实验报告

课程设计报告课程名称:数据结构专业班级:计算机辅修一班学号:财大1309100108姓名:徐倬迅指导教师:袁凌报告日期:2015、6、23计算机科学与技术目录实验一基于顺序结构的线性表实现1 1.1问题描述1 1.2系统设计1 1.3.系统实现2 1.4效率分析5实验二基于链式结构的线性表实现5 2.1问题描述5 2.2系统设计5 2.3系统实现6 2.4效率分析10四实验总结与评价10实验一基于顺序结构的线性表实现1.1问题描述基于顺序存储结构,实现线性表的基本的、常见的运算。

1.2系统设计1.2.1提供12个功能,分别是:1. InitiaList2. DestroyList3. ClearList4. ListEmpty5. ListLength6. GetElem7. LocatElem8. PriorElem9. NextElem10. ListInsert11. ListDelete12. ListTrabverse1.2.2物理结构为顺序存储结构,数据元素为包含一个整型变量的结构体:typedef struct{int item1;}Elemtype;typedef struct{Elemtype * elem;int length;int listsize;}SqList;1.2.3构建线性表之前先声明一个头结点,用于存储该表的基本信息和首结点地址:SqList L1, L2;//声明头结点1.2.4文件预处理#include<stdio.h>#include<stdlib.h>#define TRUE 1;#define FALSE 0;#define OK 2;#define ERROR -1;#define OVERFLOW -2;typedef int status;#define LIST_INIT_SIZE 100;#define LISTINCREMENT 10;//预处理1.3.系统实现1.3.1 InitialList功能初始化线性表,传入的是头结点地址。

2015数据库实验指导书

2015数据库实验指导书

数据库原理及应用实验指导书实验一实验项目名称: SQL Server 2012系统的配置及基本操作(2课时,验证)实验主要内容及方法熟悉实验环境实验要求:(1)了解SQL Server 2012的启动,熟悉如何在SQL Server 2012图形环境下建立数据库和表。

(2)了解SQL Server 2012系统的相关服务及常用工具。

实验设备:装有SQL SERVER 2012的电脑实验步骤:1、启动和停止SQL Servera.用服务管理器启动和停止SQL Server选择菜单“程序|Microsoft SQL Server|服务管理器”。

弹出“SQL Server服务管理器”,选择服务器(如:LWHNOTE)和服务选项(如:SQL Server),若没有启动,按下,即可启动SQL Server,若已经启动,按下,即可停止SQL Server。

启动SQL Server后,在任务栏的右边会显示正在运行的SQL Server,即:b.自动启动SQL Server使用手动启动弹出“SQL Server服务管理器”后,选择复选框“当启动OS 时自动启动服务”后,下次开机时系统即可自动启动SQL Server。

c.用操作系统控制面板中的服务管理程序启动和停止SQL Server选择菜单“程序|管理工具|服务”。

弹出“服务”对话框。

鼠标右击要启动的服务器名称,即:MSSQLSERVER,弹出菜单后,选择“启动”菜单项,就可启动SQL Server。

类似的方法,可以停止SQL Server。

2、使用企业管理器a.启动企业管理器在SQL Server中,企业管理器(Enterprice Manager)是最重要最常用的管理工具。

b.启动和停止SQL Server在企业管理器中所要启动的服务器上点鼠标右击,从快捷菜单中选择“连接”。

即可启动并连接。

类似的方法,可以停止SQL Server。

说明:企业管理器是一个对初学者来说最重要的管理工具,在以后的内容会经常使用。

《数据结构》实验指导书

《数据结构》实验指导书

《数据结构》实验指导书实验指导书课程名称:数据结构计算机科学与工程系《数据结构》课程组目录前言 .................................... 1 一、实验的作用和目的 ..................... 2 二、实验方式与考核方式................... 2 三、实验要求 ............................. 3 四、实验报告要求......................... 4 五、实验内容 .. (5)实验一线性表应用 (5)实验二栈与队列应用 (10)实验三二叉树的操作 (14)实验四图的遍历 ................................................18 实验五查找算法应用 (21)六、选做实验内容 (24)实验六排序 ................................................ ....24 实验七数组和广义表 (26)实验八串 ................................................ . (27)前言《数据结构》数据结构是计算机科学与技术及相关专业的一门重要专业基础课,它主要介绍线性结构、树型结构、图状结构三种逻辑结构元素的存储实现,在此基础上介绍一些典型算法,以及算法的时间、空间效率分析。

这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。

通过本课程的学习,使学生熟练地掌握数据结构的内在逻辑关系及其在计算机中的表示方法,以及相关基本操作的算法实现;掌握典型算法的设计思想及程序实现;熟悉各种数据结构在计算机科学中的基本应用;培养和训练学生结合实际应用,根据实际问题选取合适的数据结构、存储方案设计出简洁、高效、实用的算法;并为学习《操作系统》、《编译原理》、《数据库原理》等后续课程和研制开发各种系统和应用软件打下扎实的理论与实践基础。

《数据结构》实验书

《数据结构》实验书

目录实验一线性表基本操作的编程实现 (201)实验二堆栈或队列基本操作的编程实现 (49)实验四二维数组基本操作的编程实现 (18)实验五二叉树基操作的编程实现 (20)实验六图基本操作的编程实现 (45)(特别提示:程序设计包含两个方面的错误。

其一是错误,其二是能错误。

为了提高学生的编程和能力,本指导书给出的程序代码并的两种错误。

并且也不保证程序的完整性,有一些语句已经故意删除,就是要求学生自己编制完成,这样才能达到我们的要求。

希望大家以自己所学高级语言的基本功和点为基础,不要过于依赖给出的参考代码,这样才能有所进步。

如果学生能够根据要求完全自己编制,那就不好了。

)实验一线性表基本操作的编程实现【实验目的】线性表基本操作的编程实现要求:线性表基本操作的编程实现(2学时,验证型),掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结分主要功能,也可以用菜单进行管理完成大部分功能。

还鼓励学生利用基本操作进行一些更实际的应用型程序设计。

【实验性质】【实验内容】把线性表的顺序存储和链表存储的数据插入、删除运算其中某项进行程序实现。

建议实现键盘输入数据以实现程序的通据的函数。

【注意事项】【思考问题】1.线性表的顺序存储和链表存储的差异?优缺点分析?2.那些操作引发了数据的移动?3.算法的时间效率是如何体现的?4.链表的指针是如何后移的?如何加强程序的健壮性?【参考代码】(一)利用顺序表完成一个班级学生课程成绩的简单管理1、预定义以及顺序表结构类型的定义(1)#define ListSize //根据需要自己设定一个班级能够容纳的最大学生数(2)typedef struct Stu{int num; //学生的学号char name[10]; //学生的姓名float wuli; //物理成绩float shuxue; //数学成绩float yingyu; //英语成绩}STUDENT; //存放单个学生信息的结构体类型typedef struct List{stu[ListSize]; //存放学生的数组定义,静态分配空间int length; //记录班级实际学生个数}LIST; //存放班级学生信息的顺序表类型2、建立班级的学生信息void listcreate(LIST *Li,int m) //m为该班级的实际人数{int i;Li->length=0;for(i=0;i<m;i++) //输入m个学生的所有信息{printf("please input the %dth student's information:\n",i+1);printf("num=");scanf("%d", ); //输入第i个学生的学号printf("name=");scanf("%s", ); //输入第i个学生的姓名printf("wuli=");scanf("%f", ); //输入第i个学生的物理成绩printf("shuxue=");scanf("%f", ); //输入第i个学生的数学成绩printf("yingyu=");scanf("%f", ); //输入第i个学生的英语成绩Li->length++; //学生人数加1}}3、插入一个学生信息int listinsert(LIST *Li,int i) //将学生插入到班级Li的第i个位置。

《数据结构》实验指导(一)-无删减范文

《数据结构》实验指导(一)-无删减范文

《数据结构》实验指导(一)数据结构实验指导(一)1. 实验背景数据结构是计算机科学中的一个重要概念,它描述了如何组织和存储数据以及如何通过不同的操作来访问和修改这些数据。

在本实验中,我们将学习和实践数据结构中的线性表和链表。

2. 实验目的通过本次实验,我们将达到以下目的:- 理解线性表和链表的概念- 学会如何使用线性表和链表来解决常见的问题- 掌握线性表和链表的基本操作3. 实验内容3.1 线性表线性表是由 n 个数据元素 a1, a2, , an 组成的有序序列。

常见的线性表有数组和链表两种实现方式。

3.1.1 线性表的基本操作线性表的基本操作包括:- 初始化线性表- 判断线性表是否为空- 获取线性表的长度- 获取线性表中的元素- 在线性表的指定位置插入元素- 删除线性表中的指定元素- 清空线性表3.1.2 数组数组是一种连续的内存空间,可以存储相同类型的数据元素。

在数组中,每个元素的位置是通过下标来访问的,下标从 0 开始。

3.1.2.1 数组的插入操作数组的插入操作是将一个元素插入到数组的指定位置,同时需要将原位置的元素及其后续元素后移一位。

3.1.2.2 数组的删除操作数组的删除操作是将数组中指定位置的元素删除,同时需要将后续元素前移一位。

3.2 链表链表是一种离散的数据结构,它的元素包含两个部分:数据和指针。

每个节点都包含一个数据元素和一个指向下一个节点的指针。

3.2.1 链表的基本操作链表的基本操作包括:- 初始化链表- 判断链表是否为空- 获取链表的长度- 获取链表中的元素- 在链表的指定位置插入元素- 删除链表中的指定元素- 清空链表3.2.2 单链表单链表是最简单的链表形式,它的每个节点只包含一个指向下一个节点的指针。

3.2.2.1 单链表的插入操作单链表的插入操作是将一个元素插入到链表的指定位置,同时需要调整指针的指向。

3.2.2.2 单链表的删除操作单链表的删除操作是将链表中指定位置的节点删除,同时需要调整指针的指向。

《数据结构》实 验 指 导 书.doc

《数据结构》实 验 指 导 书.doc

《数据结构(C#)》实验指导书软件学院—、上机实验的指导思想和要求1.1 上机实验的目的上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。

上机实验的目的是:(1)加深对讲授内容的理解,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,通过多次上机,就能自然地、熟练地掌握。

(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C#程序开发的环境。

一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。

使用者应该了解为了运行一个C#程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。

每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快地学会。

(3)学会上机调试程序。

也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。

而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。

要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。

对程序设计来说,则要求会编程序并上机调试通过。

因此调试程序不仅是得到正确程序的一种手段,而且它本身就是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。

调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意”难以“言传”。

别人的经验不能代替自己的经验。

调试程序的能力是每个程序设计人员应当掌握的一项基本功。

因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序一些功能、改变某些语句等),再进行编译、连接和运行。

【免费下载】广工数据结构实验指导书(2015春)

【免费下载】广工数据结构实验指导书(2015春)
习题的作用在于帮助学生深入理解教材内容 , 巩固基本概念, 达到培养良好程序设计能力和习 惯的目的。从认知的程度划分,数据结构的习题通常可分为三类:基础知识题、算法设计题和综 合实习题。基础知识题主要是检查对概知识的识记和理解,一般可作为学生自测题。算法设计 题的目的是练习对原理方法的简单应用,多数是要求在某种数据存储结构上实现某一操作,是数 据结构的基础训练,构成了课外作业的主体。综合实习题则训练对知识的综合应用和软件开发能 力,主要是针对具体应用问题,选择、设计、和实现抽象数据类型( ADT)的可重用模块,并以 此为基础开发满足问题要求的小型应用软件,应将其看作软件工程的综合性基础训练的重要一环, 给予足够的重视。
第 1 章 概述
1.1 课程、教材和实验
数据结构是计算机科学的算法理论基础和软件设计的技术基础,主要研究信息的逻辑结构及 其基本操作在计算机中的表示和实现。数据结构不仅是计算机专业的核心课程,而且已成为其他 理工专业的热门选修课。课程的教学要求之一是训练学生进行复杂程序设计的技能和培养良好程 序设计的习惯, 其重要程度决不亚于知识传授。因此,在数据结构的整个教学过程中 , 完成习题 作业和上机实习是两个至关重要的环节。
数据结构及其算法的教学难点在于它们的抽象性和动态性。虽然在书本教材和课堂授课(板 书或投影胶片)中采用图示可以在一定程度上化抽象为直观,但很难有效展现数据结构的瞬间动 态特性和算法的作用过程。 我们自主研发的“C 程序可视化运行调试集成环境 AnyviewC”,以及 基于 AnyviewC 开发的数据结构、C 程序设计、离散数学等课程的 “编程作业与实验可视化网络 平台”,打破了程序运行调试黑箱。学生可 通过 AnyviewC 平台可在线编写和可视化调试自己编写 的程序,并接受系统的实时自动测评,极大提高了学生程序设计训练的效率和效果 。教师也可从 繁重的书面作业批改工作中解脱出来,转到有针对性的现场指导和习题讲评上。借助于互联网, AnyviewC 平台将实验室“全天候”和“跨时空”地拓广到每位学生个人的微机或移动终端上 。

数据结构 实验指导书——全部验证通过的噢

数据结构 实验指导书——全部验证通过的噢

《数据结构》实验指导院系专业:______________ 主讲教师:______________ 实验指导:______________姓名:______________ 学号:______________二O一五年九月目录实验一C语言的函数、数组、指针、结构体知识 (1)实验二顺序表的操作实验 (5)实验三链表的操作实验 (10)实验四栈的操作实验 (18)实验五队列的操作实验 (23)实验六二叉树的操作实验 (28)实验七静态表的查找操作实验 (35)实验八哈希表的查找操作实验 (42)实验九排序操作实验 (50)实验一C语言的函数、数组、指针、结构体知识一、实验目的1、复习C语言中函数、数组、指针、结构体与共用体等的概念。

2、熟悉利用C语言进行程序设计的一般方法。

二、实验的软硬件环境要求硬件环境要求:PC机(单机)使用的软件名称、版本号以及模块:Windows环境下的TurboC2.0以上或VC++ 等三、实验预习说明以下C语言中的概念1、函数:1、数组:3、指针:4、结构体5、共用体:四、实验内容和要求1、调试程序:输出100以内所有的素数(用函数实现)。

#include<stdio.h>int isprime(int n){ /*判断一个数是否为素数*/int m;for(m=2;m*m<=n;m++)if(n%m==0) return 0;return 1;}int main(){ /*输出100以内所有素数*/int i; printf("\n");for(i=2;i<100;i++)if(isprime(i)==1) printf("%4d",i);return 0;}运行结果:2、调试程序:对一维数组中的元素进行逆序排列。

#include<stdio.h>#define N 10int main(){int a[N]={0,1,2,3,4,5,6,7,8,9},i,temp;printf("\nthe original Array is:\n ");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){ /*交换数组元素使之逆序*/temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf("\nthe changed Array is:\n");for(i=0;i<N;i++)printf("%4d",a[i]);return 0;}运行结果:3、调试程序:在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。

数据结构实验指导书(2015计科)

数据结构实验指导书(2015计科)

《数据结构课程设计》指导书•实验目的意义数据结构实验是《数据结构》课程必不可少的一个教学环节。

通过实验,学生不仅能够深化理解教学内容,进一步提高灵活运用数据结构和算法的能力,而且可以在问题分析、总体结构设计、算法设计、程序设计、上机操作及程序调试等基本技能方面受到综合训练。

实验着眼于原理与应用的结合点,使学生学会如何把书本上和课堂上学到的知识用于解决实际问题,从而培养软件工作所需要的动手能力。

•实验基本步骤及要求1.阅读实验指导书每一次实验从阅读实验指导书开始。

对于本次实验的实验目的、实验题目、实现提示以及思考题目、选做题目等应认真了解。

2.算法设计分析实验题目,参考实现提示,进行算法设计。

3.程序设计根据已完成的算法,用C语言或java进行程序设计。

4.调试和测试将所编程序在计算机上调试通过,并选取若干组测试数据对程序进行尽可能全面的测试。

5.整理完成实验报告实验报告一般包括下列内容:(1)实验者姓名、学号、专业和班级,课程名称(数据结构实验),实验日期等;(2)本次实验的实验编号及实验名称(例如:实验一线性表的应用);(3)本次实验的实验目的(可参考《数据结构实验指导》相关内容);(4)本次实验的实验地点、设备编号、硬件及软件环境;(5)程序结构的描述及各模块的规格说明;(6)主要算法及其基本思想;(7)调试过程简述(调试过程是否顺利,遇到些什么问题,如何解决的,以及上机操作所花费的时间等);(8)测试数据和相应输出的客观纪录,对运行结果的分析讨论。

•注意:为了有效地利用上机时间,上述实验步骤1,2,3应在上机之前完成。

1目录实验一顺序表及其在简单排序中的应用实验二线性表的链式存储实验三各种排序算法的比较实验四栈及其应用实验五栈和队列的综合应用实验六二叉树及其应用实验七图论及其应用实验八(1) 表达式求值实验八(2) 停车场管理模拟实验八(3) 哈希表设计(《数据结构题集6.2》)2实验一顺序表及其在简单排序中的应用一.实验目的熟悉线性表的顺序存储结构,熟练掌握顺序表的抽象数据类型及各种基本操作的实现;利用所定义的顺序表抽象数据类型实现各类排序算法,培养灵活运用顺序表解决实际问题的能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构实验》指导书Data Structures and Algorithms Laboratory Projects王金荣2014-09-11目录1《数据结构实验》课程实验教学大纲--------------------------------------12 实验准备: 如何使用VC 6.0? ----------------------------------------------33 Projects---------------------------------------------------------------------------8 3.1 Project 1: 算法性能测量-------------------------------------------------8 3.2 Project 2: 有序表归并实验---------------------------------------------10 3.3 Project 3: 数据转换------------------------------------------------------11 3.4 Project 4: 二叉树遍历实验---------------------------------------------12 3.5 Project 5-1: 堆排序算法实现------------------------------------------13 3.6 Project 5-2: 归并排序算法实现---------------------------------------14 3.7 Project 5-3: 快速排序算法实现---------------------------------------15 3.8 Project 6-1: 图的深度优先搜索---------------------------------------16 3.9 Project 6-2: 图的广度优先搜索---------------------------------------173.10 Project 7: 散列实验---------------------------------------------------184.1 ACM题目-------------------------------------------------------------------19 4.1 ACM 1: ACboy needs your help again!-------------------------------19 4.2 ACM 2: Jumping the Queue--------------------------------------------21 4.3 ACM 3: Median ----------------------------------------------------------234.4 ACM 4: Ignatius and the Princess I------------------------------------255 实验报告格式-----------------------------------------------------------------28 6实验报告上交说明-----------------------------------------------------------291《数据结构实验》课程实验教学大纲课程中文名称:数据结构实验课程英文名称:Data Structure Practices实验课程性质:独立设课课程编码:044209101一、学时、学分课程总学时:34 实验学时:34课程总学分:1 实验学分:1二、适用专业及年级计算机科学与技术专业,软件工程专业,第二学期三、实验教学目的与基本要求“数据结构实验”的总体目标是:通过实验使学生对课堂讲授的内容有实际的体验,加深对概念、算法、技术的理解、掌握、应用,并激发学生进一步的思考和发挥,注重培养学生的学习兴趣和创新思维。

通过实验,使学生进一步掌握VC编程环境;理解和掌握数据结构的基本问题和基本算法;具备大型程序的编程能力,特别是多文件大型工程的编程;了解ACM竞赛的赛题,掌握参加ACM竞赛的基本技能。

四、主要仪器设备通过局域网互联、安装Windows XP / windows 7操作系统和Visual C++环境的微机。

注:1.实验项目名称,表达要简洁准确;2.实验属性,分“基础”、“专业基础”、“专业”。

按课程代码的第3位进行识别,第3位≤3的为“基础”,第3位=4的为“专业基础”,第3位=5的为“专业”。

3.项目类型,分“演示”、“验证”、“综合”、“设计研究”、“其他”。

4.项目要求,分“必做”、“选做”。

六、成绩考核(1)实验成绩的构成:平时成绩占50 %,实验考核占50 %,其它占0 %。

(2)评分标准(按构成分类说明):平时成绩: 自编讲义《数据结构实验指导书》中已经明确规定每个实验的目的、任务、主要步骤和评分标准。

教师以此为依据,根据学生通过上交的实验报告和实验源代码确定其完成数量和质量、进行评分。

实验考核:期末考试安排闭卷上机考试,考试题目从平时课堂试验中随机抽取。

七、实验教科书、参考书(一)教科书《数据结构实验指导书》袁贞明,王金荣编,自编讲义(二)参考书1.《数据结构与算法分析》Mark Allen Weiss,陈越改编,人民邮电出版社,2005.082.《数据结构(C语言)》 Ellis Horowitz,李建中等译, 机械工业出版社,2006.07.2 实验准备: 如何使用visual studio 2010编写一个c++程序?/article/466506580cc227f549e5f80b.html3 Projects3.1 Project 1: 算法性能测量(1)问题描述随机生成为N个随机整数,请分别用“选择排序法”和“希尔排序法”对其进行从小到大的排序,并测试不同规模N下两算法的运行时间。

(2)任务①实现选择排序法,算法见教材P11-Program 1.4;②实现希尔排序法,算法附后;③分折选择排序法的时间和空间复杂度;④当规模N分别取1000、2000、4000、8000、16000、32000、64000时,测试四个函数的运行时间,将所测结果填入表1中。

⑤* 画出函数运行时间T随着规模N的变化趋势图(可以用PPT、Matlab画)。

(3)生成随机整数的方法生成方法如下图所示,程序开头需要加上“stdlib.h”头文件。

(4)函数运行时间测试方法为测试一个C函数的运行时间,需要使用头文件“time.h”,具体测试方法参见第1.6.1节,如下所示:注: 当一个函数的运行时间小于一个tick(毫秒),则其所测时间为0.0,为了测试这种情况下函数的运行时间,我们可以将该函数重复运行K次,再测试其总运行时间(“Total Time”),然后将该时间除以K即得该函数的一次运行时间(“Duration”)。

此处的K要求足够大,使得总运行时间不能少于100毫秒。

表1 四个函数的运行时间统计(秒)(5)希尔排序算法3.2 Project 2: 有序表归并实验(1)问题描述对任意输入的两个按值非递减有序的整数序列,写一程序将它们归并成一个按值非递减有序序列。

(2)输入描述文本文件“input.txt”中保存了n个测试用例,文件以-1结束。

每个用例的第一行m1表示第一个待归并有序序列的元素个数,第二行为该序列的m1个元素,第三行m2表示第二个待归并有序序列的元素个数,第四行为该序列的m2个元素。

(3)输出描述输出结果保存在文本文件“output.txt”中。

对于每个测试用例均有二行输出,第一行输出“Case #:##”,#表示用例的编号(1…n),##表示归并后有序序列的元素个数;第二行输出##个按值非递减有序元素。

(4)输入示例51 4 8 10 3072 4 20 35 50 60 86338 45 100438 50 100 120-1(5)输出示例Case 1:121 2 4 4 8 10 20 30 35 50 60 86Case 2:738 38 45 50 100 100 1203.3 Project 3: 数据转换(1)问题描述对任意输入的十进制正整数,写一程序将其转换成二进制表示。

要求首先实现Stack ADT,然后用栈的基本操作完成该程序。

(2)输入描述文本文件“input.txt”中保存了n个小于32768的正整数,文件以-1结束。

(3)输出描述输出结果保存在文本文件“output.txt”中,文件每一行输出“#--->##”,#表示十进制表示的正整数,##为其二进制表示结果。

(4)输入示例20163445100-1(5)输出示例20--->1010016--->1000034--->10001045--->101101100--->11001003.4 Project 4: 二叉树遍历实验(1)Problem descriptionCreate binary tree as follow (Figure-1) in computer, write out the functions of inOrder , preOrder , postOrder and levelOrder, and use them to traversal the binary tree. And compute the leaf number and height of the binary tree.Hint: You may choose suitable representation, such as linked representation is often used.Figure-1 a binary tree(2)Steps and restrict conditionsStep 1. Write the function of create to create a tree by input data. The input format of the binary tree in Figure-1 is as : ABD#G##CE##FH###.Step 2. Write recursive version functions of inOrder, preOrder and postOrder to traversal the tree.Step 3. Select a suitable representation to implement stack ADT, which must at least has five basic operations: IsFull, IsEmpty, Push and Pop. The element type in the stack ispointer of node.Step 4. Implement Queue ADT represented by circular queue, which has seven basic operations: IsEmpty, IsFull, AddQ, DeleteQ. The element type in the queue is pointer of node.Step 5. Write an iterative version of inorder, the name is iterInorder() to inorder traversal tree. Step 6. Write a function for level order traversal of binary tree, the name is levelOrder.Step 7. Write a function to compute the leaf number of the binary tree, the name is leaf.Step 8. Write a function to compute the height of the binary tree, the name is height.(1)问题描述对于任一无序正整数序列,写一程序用堆排序算法将其排序成按值非递减有序序列。

相关文档
最新文档