数据结构之实验大纲

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

《数据结构》课程实验大纲

课程名称:数据结构课程编号:04516017

英文名称:Data Structure

课程类型:学科基础平台课(必修)

实验学时:32

适用对象:软件工程、网络工程专业本科

先修课程:《C/C++程序设计》

一、课程简介

《数据结构》主要讨论各种数据结构的逻辑结构、存储结构及有关操作的算法。目的是使学生学会分析和研究计算机处理的数据结构的特点,以便为应用中涉及到的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间复杂度分析和空间复杂度的分析方法。

二、实验课程性质、目的和任务

《数据结构》是计算机各相关专业的一门专业课,通过实验,使学生加深对理论的理解和掌握,提高系统分析及制作各种应用软件的能力。

三、实验课程基本要求

(1)掌握C语言的基本语句和程序设计方法。

(2)掌握根据实际问题, 选择适当的数据表示方法, 并进行算法设计的方法。

(3)学会独立调试程序。

四、实验课程内容及要求

必须仔细理解《数据结构》实验内容,认真主动完成实验的要求。有问题及时主动通过各种方式与教师联系沟通,要发挥自主学习的能力,充分利用时间,安排好实验的时间计划,并在实验过程中不断检测自己的计划完成情况,及时的向教师汇报。

五、实验课程说明及建议

《数据结构》中的算法需要通过高级程序语言来实现,本课程实验是在VC6.0环境下使用C语言来实现,所以要求学生有较好的C语言基础。试验的最后章节最好有一个综合实验,能够让学生体会到数据结构的应用。

六、各实验环节学时分配

七、考核方式

根据程序设计的具体步骤和实验基本要求,综合评定分为优、良、中、及格、不及格五个等级。并折合入总成绩,占总成绩的20%。

八、推荐实验教材和实验参考书

教材:《数据结构》(c语言版),严蔚敏、吴伟民编著,清华大学出版社

参考书:《C程序设计》谭浩强清华大学出版社

九、实验内容

实验1、多个数的求和、平均、最大值、最小值(1学时)

(1)实验目的

通过该实验,让学生对上学期所学C语言的相关内容进行回顾和熟悉,特别是顺序结构、循环结构和分支结构,熟悉C中对数组相关操作的实现。

(2)实验内容

通过键盘输入整数,直到遇到一个负数为止,该负数不考虑在内,求所输整数的合、平均值、最大值和最小值,并在屏幕上输出。

(3)验收/测试用例

输入:1、3、5、10、16、-1

输出:总和 = 35;平均值 = 7;最大值 = 10;最小值 = 1

实验2、集合的交、并差(1学时)

(1)实验目的

通过该实验,进一步让学生熟练掌握循环结构、循环控制条件、分支结构和数组/链表基本操作的实现,掌握函数参数设定的有关内容,体会到用数组存储集合时,需要记录集合元素的个数,否则输出结果会出现数据越界现象。

(2)实验内容

通过键盘,分别输入两个数据元素类型为正整数的集合A和B,以负数输入为结束条件,输出两个集合的交、并、差。从程序完善性上考虑,集合元素输入时,要有检查元素重复的功能。集合可以用数组也可以用链表存储。

(3)验收/测试用例

输入: 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}

实验3、顺序表的基本操作(6学时)

(1)实验目的

通过该实验,深入理解顺序表的逻辑结构、物理结构等概念,掌握顺序表基本操作的编程实现,注意顺序表插入、删除等操作过程中数据元素的移动现象,培养学生编写程序时,要考虑程序的强壮性,熟练掌握通过函数参数返回函数结果的办法。

(2)实验内容

编程实现顺序表下教材第二章定义的线性表的基本操作,最好用菜单形式对应各个操作,使其编程一个完整的小软件。

(3)参考界面

(3)验收/测试用例

通过菜单调用各个操作,测试点:

●没有初始化前进行其他操作,程序是否能控制住;

●初始化一个顺序表;

●插入数据(位置,数据),要测插入位置不合法的情况(0,1)、(2,1),

正确插入4个数据(1,2)、(1,1)、(3,3);

●显示顺序表中的数据,屏幕输出1, 2, 3;

●判空,屏幕输出顺便表非空;

●顺便表长度,屏幕输出3;

●获取指定位置元素,要测指定位置在【1,3】范围之外的情况和之内的情

况;

●定位,输入:4,输出:不存在,输入2,输出位置为2;

●求直接前驱,要测求第一个元素的前驱、不存在顺序表中的元素的直接前

驱,其他元素的直接前驱;

●求直接后继,要测最后一个元素的后继、不存在顺序表中的元素的直接后

继,其他元素的直接后继;

●删除,要测位置在【1,3】范围之外的情况和之内的情况;

●清空操作后再测长度;

●销毁顺序表

实验4、链表的基本操作(4学时)

(1)实验目的

通过该实验,深入理解链表的逻辑结构、物理结构等概念,掌握链表基本操作的编程实现,熟练掌握C语言中指针的操作。和实验3对比,掌握线性结构两种不同存储方式的区别。

(2)实验内容

编程实现链表下教材第二章定义的线性表的基本操作,最好用菜单形式对应各个操作,使其编程一个完整的小软件。

(3)参考界面

(4)验收/测试用例

同实验4

实验5、顺序栈的基本操作(2学时)

(1)实验目的

通过该实验,让学生掌握栈的相关基本概念,认识栈是插入和删除集中在一端进行的线性结构,掌握栈的“先入后出”操作特点。栈在进行各类操作时,栈底指针固定不动,掌握栈空、栈满的判断条件。

(2)实验内容

用顺序存储结构,实现教材定义的栈的基本操作,提供数制转换功能,将输入的十进制整数转换成二进制。

(3)参考界面

(4)验收/测试用例

通过菜单调用各个操作,测试点:

●没有初始化前进行其他操作,程序是否能控制住;

●初始化一个栈;

●判栈空,屏幕显示栈为空;

●3个数入栈, 1、2、3;

相关文档
最新文档