实验大纲 - 数据结构
更新时间:2024-05-21 00:11:01 阅读量: 综合文库 文档下载
- 实验大纲推荐度:
- 相关推荐
《数据结构》课程实验大纲
课程名称:数据结构 课程编号:04512017 英文名称:Data Structure 课程类型: 学科基础平台课(必修) 实验学时:36
适用对象: 计算机科学与技术、软件工程、网络工程专业本科 先修课程:《C/C++程序设计》
一、课程简介
《数据结构》主要讨论各种数据结构的逻辑结构、存储结构及有关操作的算法。目的是使学生学会分析和研究计算机处理的数据结构的特点,以便为应用中涉及到的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间复杂度分析和空间复杂度的分析方法。
二、实验课程性质、目的和任务
《数据结构》是计算机各相关专业的一门专业课,通过实验,使学生加深对理论的理解和掌握,提高系统分析及制作各种应用软件的能力。
三、实验课程基本要求
(1)掌握C语言的基本语句和程序设计方法。
(2)掌握根据实际问题, 选择适当的数据表示方法, 并进行算法设计的方法。 (3)学会独立调试程序。
四、实验课程内容及要求
必须仔细理解《数据结构》实验内容,认真主动完成实验的要求。有问题及时主动通过各种方式与教师联系沟通,要发挥自主学习的能力,充分利用时间,安排好实验的时间计划,并在实验过程中不断检测自己的计划完成情况,及时的向教师汇报。
1
五、实验课程说明及建议
《数据结构》中的算法需要通过高级程序语言来实现,本课程实验是在VC6.0环境下使用C语言来实现,所以要求学生有较好的C语言基础。试验的最后章节最好有一个综合实验,能够让学生体会到数据结构的应用。
六、各实验环节学时分配
序号 1 2 3 4 5 6 7 8 9 10 实验名称 多个数的求和、平均、最大值、最小值 集合的交、并差 顺序表的基本操作 链表的基本操作 顺序栈的基本操作 链队列的基本操作 矩阵的2种转置运算 二叉树的应用 赫夫曼树的构建 构造无向图(算法7.1),深度和广度遍历 合计 实验学时 2 2 6 4 2 2 4 4 6 4 36
七、考核方式
根据程序设计的具体步骤和实验基本要求,综合评定分为优、良、中、及格、不及格五个等级。并折合入总成绩,占总成绩的20%。
八、推荐实验教材和实验参考书
教 材: 《数据结构》(c语言版),严蔚敏、吴伟民编著,清华大学出版社 参考书: 《C程序设计》 谭浩强 清华大学出版社
2
九、实验内容
实验1、多个数的求和、平均、最大值、最小值 (2学时) (1)实验目的
通过该实验,让学生对上学期所学C语言的相关内容进行回顾和熟悉,特别是顺序结构、循环结构和分支结构,熟悉C中对数组相关操作的实现。
(2)实验内容
通过键盘输入整数,直到遇到一个负数为止,该负数不考虑在内,求所输整数的合、平均值、最大值和最小值,并在屏幕上输出。
(3)验收/测试用例 输入:1、3、5、10、16、-1
输出:总和 = 35;平均值 = 7; 最大值 = 10; 最小值 = 1 #include \#include \main() {
int a[10],i,j,b,c,d,e,k,l,p; i=0;
printf(\请输入数:\\n\ scanf(\ while(a[i]>0) {
i++;
3
scanf(\
}
j=i;
printf(\共%d个整数\\n\//add b=0;
for(k=0;k b+=a[k]; printf(\总和为%d\\n\//average c=b/j; printf(\平均数为%d\\n\//max d=a[0]; for(l=0;l d=a[l]; 4 } printf(\最大值为%d\\n\ //min e=a[0]; for(p=0;p printf(\最小值为%d\\n\} 实验2、集合的交、并差 (2学时) (1)实验目的 通过该实验,进一步让学生熟练掌握循环结构、循环控制条件、分支结构和数组/链表基本操作的实现,掌握函数参数设定的有关内容,体会到用数组存储集合时,需要记录集合元素的个数,否则输出结果会出现数据越界现象。 (2)实验内容 通过键盘,分别输入两个数据元素类型为正整数的集合A和B,以负数输入为结束条件,输出两个集合的交、并、差。从程序完善性上考虑,集合元素输入时,要有检查元素重复的功能。集合可以用数组也可以用链表存储。 (3)验收/测试用例 5 if(e>a[p]) e=a[p]; 输入: A={1,2,3,4,5} B={3,4,5,6,7} 输出 A交B={3, 4, 5} A并B={1,2,3,4,5,6,7} A-B={1, 2} #include \main() { int a[10],b[10]; printf(\请输入集合A\ printf(\请输入集合B\} 6 实验3、顺序表的基本操作 (6学时) (1)实验目的 通过该实验,深入理解顺序表的逻辑结构、物理结构等概念,掌握顺序表基本操作的编程实现,注意顺序表插入、删除等操作过程中数据元素的移动现象,培养学生编写程序时,要考虑程序的强壮性,熟练掌握通过函数参数返回函数结果的办法。 (2)实验内容 编程实现顺序表下教材第二章定义的线性表的基本操作,最好用菜单形式对应各个操作,使其编程一个完整的小软件。 (3)参考界面 (3)验收/测试用例 通过菜单调用各个操作,测试点: ? 没有初始化前进行其他操作,程序是否能控制住; ? 初始化一个顺序表; ? 插入数据(位置, 数据),要测插入位置不合法的情况(0,1)、(2,1), 正确插入4个数据(1,2)、(1,1)、(3,3); ? 显示顺序表中的数据,屏幕输出1, 2, 3; ? 判空,屏幕输出顺便表非空; ? 顺便表长度,屏幕输出3; ? 获取指定位置元素,要测指定位置在【1,3】范围之外的情况和之内的情 况; 7 ? 定位,输入:4, 输出:不存在,输入2,输出位置为2; ? 求直接前驱,要测求第一个元素的前驱、不存在顺序表中的元素的直接前 驱,其他元素的直接前驱; ? 求直接后继,要测最后一个元素的后继、不存在顺序表中的元素的直接后 继,其他元素的直接后继; ? 删除,要测位置在【1,3】范围之外的情况和之内的情况; ? 清空操作后再测长度; ? 销毁顺序表 实验4、链表的基本操作 (4学时) (1)实验目的 通过该实验,深入理解链表的逻辑结构、物理结构等概念,掌握链表基本操作的编程实现,熟练掌握C语言中指针的操作。和实验3对比,掌握线性结构两种不同存储方式的区别。 (2)实验内容 编程实现链表下教材第二章定义的线性表的基本操作,最好用菜单形式对应各个操作,使其编程一个完整的小软件。 (3)参考界面 8 (4)验收/测试用例 同实验4 实验5、顺序栈的基本操作 (2学时) (1)实验目的 通过该实验,让学生掌握栈的相关基本概念,认识栈是插入和删除集中在一端进行的线性结构,掌握栈的“先入后出”操作特点。栈在进行各类操作时,栈底指针固定不动,掌握栈空、栈满的判断条件。 (2)实验内容 用顺序存储结构,实现教材定义的栈的基本操作,提供数制转换功能,将输入的十进制整数转换成二进制。 (3)参考界面 (4)验收/测试用例 通过菜单调用各个操作,测试点: ? 没有初始化前进行其他操作,程序是否能控制住; ? 初始化一个栈; ? 判栈空,屏幕显示栈为空; ? 3个数入栈, 1、2、3; 9 ? 栈长度,屏幕输出3; ? 取栈顶元素,再判栈空,然后再判栈长度。让学生知道取栈顶元素不改变栈 中的内容,栈顶指针不发生改变; ? 出栈,再判栈长度; ? 销毁栈,再做其他操作,判断程序是否能控制; ? 数制转换,输入:8,输出:100 实验6、链队列的基本操作 (2学时) (1)实验目的 通过该实验,使学生理解链队列的构造特点并灵活应用,掌握链队基本操作的编程实现,认识栈是在一端进行插入,在另一端进行删除集中操作的线性结构,掌握队列的“先入先出”操作特点,知道判断队列空和满的条件,进一步熟悉C语言中指针操作。 (2)实验内容 用链式存储结构,实现教材定义的队列的基本操作。 (3)参考界面 (4)验收/测试用例 通过菜单调用各个操作,测试点: ? 没有初始化前进行其他操作,程序是否能控制住; ? 初始化一个队列; ? 判队列空,屏幕显示队列为空; 10 ? 4个数入队, 1、2、3、5; ? 栈长度,屏幕输出4; ? 取队头元素,再判栈空,然后再判栈长度。让学生知道取队头元素不改变队 列中的内容,队头指针不发生改变; ? 出队,再判栈长度; ? 销毁队,再做其他操作,判断程序是否能控制; 实验7、矩阵的2种转置运算 (4学时) (1)实验目的 通过该实验,让学生理解矩阵压缩存储的概念、方法等相关知识,掌握用三元组表方式如何进行矩阵的压缩存储,并在此基础上进行转置操作,理解转置和快速转置两种矩阵转置算法的思想。 (2)实验内容 用三元组表压缩存储矩阵,实现创建矩阵、显示以及教材中介绍的两种转置算法。 (3)参考界面 (4)验收/测试用例 ? 创建, 输入:4(行数) 4(列数) 5(非零元个数) (1,1,1) (2,3,2) (3,1,3) (3,4,5) (4,2,4) 检查是否能拦截元素重复输入 ? 显示 屏幕上输出 11 1 0 0 0 0 0 2 0 3 0 0 5 0 4 0 0 ? 转置 屏幕上输出 1 0 3 0 0 0 0 4 0 2 0 0 0 0 5 0 实验8、二叉树的应用 (4学时) (1)实验目的 通过该实验,使学生理解二叉树的链式存储,掌握二叉树的几种遍历算法,并通过该实验使学生理解递归的含义,掌握C语言编写递归函数的方法和注意事项。 (2)实验内容 实现教材中算法6.4描述的二叉树创建算法,在此基础上实现二叉树的先序、后序递归遍历算法、两种非递归中序遍历、层序遍历、求二叉树的深度。 (3)参考界面 (4)验收/测试用例 12 ? 创建 输入 :ABC$$DE$G$$F$$$ ($表示空格) 该输入对应的树如图所示 ? 先序 屏幕输出 A B C D E G F ? 后序 屏幕输出 C G E F D B A ? 中序 屏幕输出 C B E G D F A (两种中序非递归还需看源代码) ? 层序 屏幕输出 A B C D E F G ? 深度 屏幕显示 深度为5 实验9、赫夫曼树的构建 (6学时) (1)实验目的 通过该实验,使学生理解赫夫曼树的概念,掌握赫夫曼树及赫夫曼编码的构造过程,体会网络发送端和接收端编码和译码过程及其工作原理。 (2)实验内容 给定报文中26个字母a-z及空格的出现频率{64, 13, 22, 32, 103, 21, 15, 47, 57, 1, 5, 32, 20, 57, 63, 15, 1, 48, 51, 80, 23, 8, 18, 1, 16, 1, 168},构建赫夫曼树并为这27个字符编制赫夫曼编码,并输出。模拟发送端,从键盘输入字符串,以%为结束标记,在屏幕上输出输入串的编码;模拟接收端,从键盘上输入0-1赫夫曼编码串,翻译出对应的原文。 (3)参考界面 ^ E ^ F ^ ^ C ^ D B A ^ G 13 (4)验收/测试用例 ? 模拟发送端 输入:I love you 输出:01101111011110011100000010111100011100100001 ? 模拟接收端 输入 输入:01101101111011000111111010111101101001100001 输出:it is a dog 实验10、构造无向图(算法7.1),深度和广度遍历 (4学时) (1)实验目的 通过该实验,使学生掌握图的几种存储结构,理解图的深度优先和广度优先遍历算法的思想和实现办法, (2)实验内容 实现教材算法7.2利用邻接矩阵构造无向图的算法,提供从邻接矩阵获得邻接表的功能,在此基础上进行深度优先遍历和广度优先遍历。 (3)参考界面 14 4)验收/测试用例 ? 创建所示无向图 屏幕输出邻接矩阵 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 ? 深度优先遍历 屏幕输出: 1 2 3 4 5 6 ? 广度优先遍历 屏幕输出:1 2 6 3 4 5 1 6 2 4 3 5 实验大纲制订人:乔保军 实验大纲审定人: 制订日期:2013.08 15 (
正在阅读:
实验大纲 - 数据结构05-21
山鸡养殖许可证申请书(标准).docx04-13
2011材料研究方法试题库04-11
2016-2017学年广东省广州市番禺区八年级第二学期期末数学03-12
SONY专业视频摄像机08-19
演讲稿-如何养成一种令行禁止的服务意识,做到雷厉风行06-01
诚实的人作文600字06-22
现代教育技术概论客观题题库03-12
保护青蛙看图写话350字06-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 大纲
- 实验
- 如何对网瘾初中生有个正确认识和对待
- 人教版三年级上册语文期末试卷30套(2018新版教材)
- 校园安全应急预案
- 尔雅 从草根到殿堂 期末答案
- 2019年4月2019届九年级第二次模拟大联考(安徽)-化学(全解全析
- 医院感染防控行动计划解读
- 炼化企业安全专业技能竞赛复习题及答案(第一套)
- 师生进行有效沟通的策略090927
- 华为3COM存储基础知识白皮书 - 图文
- 高三物理典型例题集锦(二)(1)
- 在2016年秋季开学典礼上的发言
- 2019年中级经济基础试题6171.docx
- 3月2日第3讲 圆周运动(高一)
- 整流电路1
- 女服项目可行性研究报告(目录) - 图文
- 《组织行为学》第十二版 罗宾斯 课后讨论题
- 北京师范大学网络教育课程论文:《当代小学教育教学改革》
- 精密模具型腔电火花加工要点!
- 人教版品德与生活一年级下册《风儿吹呀吹》教学设计
- 校本教材《竹西四德》 - 孔子教案