ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:23.57KB ,
资源ID:12629824      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12629824.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验大纲.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验大纲.docx

1、数据结构实验大纲数据结构实验课程实验教学大纲一、 课程基本信息课程名称: 数据结构实验英文名称: Data Structure课程编码: 11111012B/1112112B课程性质: 独立设课课程类别:专业必修课程课程总学时: 14 课程总学分: 1适用专业: 计算机科学与技术/网络工程方向先修课程: 高级语言程序设计,离散数学,概率论与数理统计开课系部: 计算机科学与技术系二、 实验课程的目的与要求这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过学习,要求学生能够掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案设计出简洁、高效、实用的算法,为后续课程

2、的学习及软件开发打下良好的基础。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好数据结构的关键。通过实验课程更好的训练学生算法分析及算法设计的能力。三、 主要仪器设备与实验基本要求硬件要求:微型计算机一台(Pentium或以上)软件要求:Windows操作系统,Turbo C 或VC+6.0等实验要求:1.上机前要作好充分准备,根据实验题目编写好源程序。2.对上机操作过程中可能出现的问题预先分析,确定调试步骤和测试方法,对运行结果如何分析等。3.上机实验完成后,认真写出实验报告,对上机中出现的问题进行分析、总结。4.上机过程中要

3、遵守实验室的各项规章制度,爱护实验设备,服从指导老师安排。5本课程的实验过程中,不得进行游戏、上网等操作。四、 实验项目名称和课内学时分配序号实验项目名称时数实验属性实验者类别必开选开每套仪器人数实验类型1简单算法实验专业类本科生选开1验证2线性表的基本操作2专业类本科生必开1综合3栈和队列的应用2专业类本科生必开1综合4二叉树两种存储结构的应用2专业类本科生必开1综合5图2专业类本科生必开1综合6小型系统开发(课程设计)6专业类本科生必开1设计注:设计性和综合性实验如课内学时不够,学生可利用开放实验室利用课余时间完成本次实验内容。五、 实验内容及要求 实验项目一实验项目名称:简单算法实验实验

4、项目的目的和要求: 1 复习C语言指针的用法 2 复习C语言结构体的用法 3 理解时间复杂度分析的基本方法 上机实验内容:1用指针方式编写程序:从键盘输入N个整型数据,并存入数组,要求将N个数中最大的数与第一个数交换;将其中最小的数最后一个数交换。2有N 个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。要求从键盘依次输入N 个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分数,并将N 个学生的数据输出。说明:不占课内学时实验项目二实验项目名称:线性表的基本操作实验项目的和要求:1 掌握线性表的特点 2 掌握线性表的顺序存储结构和链式存储结构的基本运算。3 尽可能考虑算法的健壮

5、性4 实验报告中要写出测试数据、错误分析以及收获。上机实验内容一:两种存储结构的基本运算1.用结构体类型描述线性表的两种存储结构2.完成课堂上所讲的两种存储结构的基本运算3.要求用二级菜单实现 * * 1-顺序表 * * 2-链 表 * * 0-退 出 * * 请输入的选择:(0-2): 线性表的链式存储 # # 1-前插建立链表 # 2-后插建立链表 # # 3-访问第i个元素 # # 4-插入 # # 5-删除 # # 6-求线性表的表长 # # 0-退出 # # 请输入选择(0-6): 上机实验内容二:超市密码存储箱系统的设计与实现1.顾客使用箱子的流程为“投一元硬币”-“找到一个空箱子

6、,同时产生密码”(系统完成)-“打印密码,打开箱子”(系统完成)-“取密码纸存包,并关闭箱子,入超市购物”-“购物结束”-“输入密码”-“找到对应箱子并打开”(系统完成)-“取包”。2.现要求设计程序模拟以上系统完成的功能 界面:在我们的模拟系统中,箱子在屏幕上被画出来,并编号,空箱为蓝色,被使用时变成红色,再变为空后则恢复蓝色;通过按“1”键模拟顾客投币;当空箱子被顾客申请得到的同时,系统自动生成6位数密码,此密码不能与正在被使用的任何一个箱子的密码相同。3.设计分析 在设计时,可利用链表来组织所有的箱子,所有的箱子以结点的形式表示,结点中存放箱号、密码(满箱有,空箱无)以及指向下一个结点的

7、指针。空箱结点放在一个链表1中,满箱结点放在另一个链表2中。 若有顾客投币(这里按下“1”键模拟),查看链表1是否为空,若为空,则显示“箱满,请稍侯!”,若非空,则取出一个结点,随机产生一个六位数密码,并将些密码和链表2中所有结点的密码相比较,若有重复,则再随机产生一个新密码,直到无重复;将密码信息写入此结点,并将其插入链表2;将此箱的颜色改为红色。4.密码箱的存储结构类型定义 typedef struct node int num;/*箱子的号码*/ int password;/*箱子的密码(满箱有,空箱无)*/ struct node *next;/*指向下个结点的指针*/ Node,*L

8、inkList;上机实验内容三:员工通讯录管理系统 1.为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。2.现要求设计程序模拟以上系统完成的功能 其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除以及整个通讯录表的输出。3.设计分析 在本设计中,整个通讯录可以采用顺序表或链表方式存储。采用前者,可以提高查询速度;采用后者,可以提高插入与删除记录的效率。4.员工通讯信息的结构类型定义和通讯录链表的结点类型 typedef struct char num5;/*员工编号*/char name8;/*员工姓名*/ char phone

9、9;/*办公室电话号码*/ char call12;/*手机号码*/ DataType;/*员工通讯信息的结构类型*/typedef struct node DataType data;/*结点的数据域*/ struct node *next;/*结点的指针域*/ ListNode,*LinkList;/*通讯录链表的结构类型*/上机实验内容四:运动会记分子系统或学生成绩管理子系统1.参加运动会的N个学校编号为1N。比赛分成M个男子项目和W个女子项目,每个项目取前3名,得分分别为5,3,2。写一个程序产生各种成绩单和得分报表。2.完成功能包括如下:产生一总成绩表,包括:系名、男子团体总分、女子

10、团体总分、团体总分存储结构要求用线性表的顺序存储。实验报告中要写出测试数据、错误分析以及收获。若选择学生成绩管理子系统,可仿照运动会记分子系统完成相关的插入、删除、查找及各种统计工作。实验项目三实验名称:栈和队列的应用实验目的和要求:1 掌握栈和队列的概念和特点2 掌握栈和队列在顺序和链式存储结构下的插入、删除算法3 认真分析项目实例中的内容,将相关程序在计算机上运行实现上机实验内容一:表达式求值问题1求一个数学表达式的值:用户输入一个包含正整数、括号和四则运算符(“+”、 “”、 “*”、 “/”)的算术表达式,计算其结果。2设计分析 首先置操作数栈为空栈,表达式起始符“#”为运算符栈底元素

11、;依次读入表达式中每个字符,若是操数则进操作数栈,若是操作符则和操作符栈顶的运算符进行比较优先权后作相应的操作,直到整个表达式求值完毕(即操作符栈顶元素和当前读入的字符均为“#”)3结点结构类型描述如下 typedef structchar *base,*top;int stacksize;sqstack;上机实验内容二:迷宫求解问题1.迷宫是一个m行n列的矩阵,其中0表示无障碍,1表示有障碍。设入口为(1,1),出口为(m,n),即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直到出口为止。2.迷宫的功能 要求随机生成一个m行n列的矩阵,为了操

12、作方便可以在矩阵外围生成一圏障碍,设置东南西北四个方向,采用链栈进行操作。最后迷宫如不是通路给出“此迷宫元解”,如是通路要求输出所走过的路径。3结点结构类型描述如下typedef struct node int row;int col;struct node *next;实验项目四实验名称:二叉树两种存储结构的应用实验目的和要求:1 掌握二叉树的遍历思想及二叉树的存储实现。2 掌握二叉树的基本操作:建立二叉树、二叉树的遍历3 选择一种形式完成二叉树的显示4 掌握二叉树的常见算法的程序实现 5 实验报告中要写出测试数据、错误分析以及收获 上机实验内容一:二叉树的建立及相关算法的实现1完成的功能包

13、括如下几点: 编程实现建立一棵二叉树,然后对其进行先序、中序和后序遍历。 分析:将要输入的二叉树按照其对应的完全二叉树的顺序输入,若当前位置不存在结点则输入 显示二叉树 求二叉树的高度及二叉树的叶子个数等等 在主函数中设计一个简单的菜单,分别调试上述算法 上机实验内容二:哈夫曼编码/译码系统 1要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。2设计分析 在本例中的算法主要有:哈夫曼树的建立;哈夫曼编码的生成;对编码信息的翻译。要求设置发送者和接收者两个功能。 发送者的功能包括: 输入待传送的字符信息;

14、统计字符信息中出现的字符类数和各字符出现的次数(频率);根据字符的种类数和各字符出现的次数建立哈夫曼树;利用以上哈夫曼树求出各字符的哈夫曼编码;将字符信息转换成对应的编码信息进行传送。接收者的功能包括: 接收发送者传送来的编码信息;利用上述哈夫曼树对编码进行翻译,即将编码信息还原成发送前的字符信息。3结点的类型定义哈夫曼树的存储结构类型定义为:typedef structchar data; /*编码对应的字符*/int weight; /*结点的权值*/int lchild,rchild,parent;/*左右孩子及双亲的下标*/HTNode;哈夫曼编码的存储结构类型定义为:typedef

15、structchar bitsN; /*存放哈夫曼编码的字符数组*/int start; /*记录编码的起始位置,因为每种字符的编码长度不同*/HCode;说明:只占用2个课内学时,学生可利用开放实验室利用课余时间完成本次实验内容。实验项目五实验名称: 图子系统实验目的和要求:掌握图的存储思想及其存储实现 掌握图的深度、广度优先遍历算法思想及其程序实现 掌握图的常见应用算法的思想及其程序实现 实验内容一:图的遍历问题 1键盘输入以下结点数据:太原、成都、北京、上海、天津、大连、河北。建立一个有向图或无向图(自定)的邻接表并输出该邻接表 2在图的邻接表的基础上计算各顶点的度,并输出 3以有向图的

16、邻接表为基础实现输出它的拓扑排序序列 4采用邻接表存储实现无向图的深度优先遍历 5采用邻接表存储实现无向图的广度优先遍历 6采用邻接矩阵存储实现无向图的最小生成树的 PRIM 算法 7在主函数中设计一个简单的菜单,分别调试上述算法 实验内容二:所有顶点对的最短路径1设置4个村庄之间的交通,村庄之间的距离用各边上的权值来表示。现在要求从这4个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院最近。 2设计分析 用有向加权图表示的交通图中,有向边表示第i个村庄和第j个村庄之间有道路,边上的权表示这条道路的长度。该问题的实质是求解任意两顶点间的最短路径问题。即求出每

17、个顶点到其他顶点的最短路径的最大值,最大值最小的顶点作为医院所在村庄。 3结构类型定义typedef char vextype;/*顶点数据类型*/typedef int edgetype;/*边数据类型*/typedef structvextype vexmaxsize; edgetype arcmaxsizemaxsize; int vexnum,arcnum;Mgraph;说明:只占用2个课内学时,学生可利用开放实验室利用课余时间完成本次实验内容。实验项目六实验名称: 小型系统开发(课程设计)实验目的和要求:掌握小型系统开发方法,提高学生综合开发能力。根据实际问题,设计方案,综合运用课程

18、知识,完成学生成绩管理系统或数据结构算法演示系统的设计、编程与调试工作。上机实验内容一:分析、调研数据结构课程所学的算法(功能模块)或学生成绩管理的相关功能模块,采用结构化设计思想、模块分解的规则构成一个易使用的小型管理系统。具体要求见数据结构实验课程设计上机实验内容二:手机短信中电话号码和手机号码的识别与提取1.在使用手机收发短信时,收到的短信内容中常会包含对方发来的电话号码或手机号码,为了方便用户能直接提取其中的号码并存入到其手机的通讯录中,现要求开发手机系统软件中的一个子功能,实现从手机短信内容中识别和提取电话号码(7位或8位)和手机号码(11位),并将其存入通讯录中。2.设计分析 要从

19、手机短信的内容中识别电话号码或手机号码,必须从短信的第一个字符开始查找,找到第一个数值型字符(09),然后依次判断其后的字符,若其后有连续的6个或7个数值型字符,则将其识别成电话号码并提取,若其后有连续的10个数值型字符,则将其识别成手机号码并提取。继续向后搜索直到整个短信查找完毕。3.存储结构类型定义短信的存储结构类型定义 typedef structchar word200;/*短信内容*/int length; /*短信长度*/Message;通讯录中记录的存储结构类型的定义typedef structchar name8; /*姓名*/char phone11; /*电话号码或手机号码

20、*/Note;上机实验内容三:药店的药品销售统计系统1.设计一系统,实现医药公司定期对各药品的销售记录进行统计,并按药品编号、单价、销售量或销售额做出排序。2.设计分析 在设计中,首先从数据文件读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药品名称、单价、销售量、销售额。其中药品编号共4位,采用字母和数字混合编号,如:B125,前一位为大写字母,后三位为数字。3.存储结构类型定义药品信息的存储结构类型定义 typedef struct nodechar num4;/*药品编号*/char name10; /*药品名称*/ float price;/*单价*/ int cou

21、nt; /*销售量*/ float sale; /*销售额*/DataType;存储药品信息的顺序表的定义typedef structDataType rmaxsize; int length; sequenList;上机实验内容四:电视大赛观众投票及排名系统1.在很多电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排列,从而自动产生冠军、亚军和季军。现要求编写一程序模拟实现上述系统的功能。2.设计分析 在本系统中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc函数来开辟存放选手信息的顺序表。将选

22、手的编号和姓名依次存入顺序表单元中,观众通过按键进行投票,按“1”表示为1号选手投票,按“2”表示为2号选手投票,依次类推。以按“0”作为投票结束标志。投票结束后进行排序。3. 存储结构类型定义选手信息的存储结构类型定义 typedef struct nodechar name8; /*选手姓名*/ int num;/*选手编号*/ int score; /*选手得分*/ int tax; /*选手名次*/Node;开辟空间用于构造存放选手信息的顺序表R:R=(Node *)malloc(n*sizeof(Node);其中n 为参赛选手的人数,在此采用动态空间分配,而不是在开始时直接开辟静态数

23、组,这样是为了避免空间的不足造成浪费。 在投票时,按“1”为1号选手投票的实现: Scanf(“%c”,&k); /*观众按键*/ RK-48.score= RK-48.score+1;若观众输入的是“1”,则“1”-48即为ASCII-48=1,因此可以实现对1号选手的票数加1,即R1=R1+1。其他选手类似。说明:第十四周布置课程设计的相关要求,学生分小组、小组内每个学生有具体分工,利用开放实验室课余时间完成。六、 实验报告从实验二开始每个实验要交实验报告,格式必须规范(见实验二提供的实验报告要求),实验报告中要写出测试数据、错误分析以及收获。七、 实验课程考核以平时实验报告成绩点40%,最后设计实验占60%。在期末进行该课程的实验考核,根据考核结果、实验报告和实验考勤等方面,综合给出该课程的实验成绩,计入该课程的总成绩中。以平时实验报告成绩点40%,最后设计实验占60%。八、 使用教材及主要教学参考书参考书目:1谭浩强等,实用数据结构 2严蔚敏等,数据结构题集 3.闵光太,王春红等C语言与数据结构实践 执笔教师:王春红 教研室主任:贺玉珍 教学系主任:王春红

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1