文档库

最新最全的文档下载
当前位置:文档库 > 数据结构实验教学大纲(1)

数据结构实验教学大纲(1)

《数据结构》实验教学大纲

课程总学时:64+32学分:5

实验学时:32 实验个数:实验学分: 1

课程性质:必做适用专业:计算机科学与技术、软件工程、网络工程

教材及参考书:

数据结构(C语言版),严蔚敏吴伟民,清华大学出版社,2002年9月第1版;

数据结构题集(C语言版)实习题部分,清华大学出版社;

数据结构实验教程,王玲刘芳贺春林等,四川大学出版社,2002年10月,

大纲执笔人:刘芳大纲审定人:

一、实验课的性质与任务

计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于计算机程序设计知识的初学者,理解和掌握其中的原理就显得较为困难。

《数据结构》实验课程着眼于原理和应用的结合点,使读者学会如何将书上学到的知识用于解决实际问题,培养软件工作需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时练习较偏重于如何编写功能单一的“小”算法,而实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。此外,还有很重要的一点是:机器是比任何老师更严厉的检查者。

训练的重点在于基本的数据结构,而不是强调面面俱到。各实习单元与教科书的各章只具有粗略的对应关系,一个实习题常常涉及到几部分教学内容。

二、实验课程目的与要求

1.实验目的

根据《数据结构》课程的任务与要求,帮助学生拓宽知识面。并达到以下教学要求:

1)学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当

的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分

析的技术;掌握各种基本数据结构的逻辑结构和存储结构及相应算法。

2)本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清

楚、正确易读,符合软件过程的规范,从而培养学生的数据抽象能力;

3)通过若干数据结构应用实例,引导学生学习数据类型的使用,为今后学习面向

对象的程序做一些铺垫。

2.实验要求

1)熟悉各种基本数据结构的定义,性质和特点,初步掌握算法分析的基本技巧以

及如何根据实际问题设计一个有效的算法。

2)会书写类C语言的算法,并将算法转变为程序实现。

3)正确理解各种数据结构的逻辑特性和存储表示和基本操作的算法实现,有较强

的逻辑分析能力。

4)针对问题的不同选择合适的数据结构,提高算法设计的能力和动手实验的技

能。

三、实验项目及内容提要

数据结构实验教学大纲(1)

实验一抽象数据类型的表示与实现

(验证性实验 2 学时)

1.目的要求:

1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;

2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组)。

3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,

并结合程序进行分析。

2.实验内容:

1)编程实现抽象数据类型三元组的定义、存储、基本操作(最大值、最小值、平均值等的求解),并设计一个主菜单完成各个功能的调用。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验二线性表实验

(验证性实验 4 学时)

1.目的要求:

1)熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;

2)以线性表的各种操作(建立、插入、删除等)的实现为重点;

3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。

4)认真阅读和掌握本实验的参考程序,上机运行本程序,保存和打印出程序的运行

结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。

3.实验内容:

1)编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验三栈、队列实验

(验证性试验6 学时)

1.目的要求:

1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们。

2)本实验训练的要点是“栈”和“队列”的观点;

2.实验内容:

1)利用栈,实现任一个表达式中的语法检查(如括号的匹配)。

2)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验四稀疏矩阵实验

(验证性 4 学时)

1.目的要求:

1)掌握特殊矩阵的压缩存储表示,了解稀疏矩阵的三元表顺序表示及基本操作的实

现。

2.实验内容:

1)稀疏矩阵的三元组顺序表示方法及基本操作的实现(建立、输出、转置)并实现一个主菜单来实现。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验五树及二叉树实验

(验证性、应用性 6 学时)

1.目的要求:

1)树是一种重要的非线性数据结构,要求掌握二叉树的两种基本的存储结构,及各种

操作的算法实现(建立、遍历)以及应用。

2)本实验训练的要点是:递归算法的设计方法以及二叉树的应用。

2.实验内容:

1)按先序次序输入二叉树中结点的值,建立一棵以二叉链表作存储结构的二叉树,然

后按先序、中序、后序顺序分别遍历这棵二叉树。

2)编写一个求二叉树叶子结点数的算法。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验六图及其应用实验

(验证性 6 学时)

1.目的要求:

1)图是一种重要的非线性数据结构,要求掌握图的两种基本的存储结构(邻接矩阵、

邻接表),以及图的基本算法实现(建立、深度优先遍历、广度优先遍历),并能运

用图结构分析解决一些实际问题。

2)本实验训练的要点是:图的两种基本存储结构,及各种操作的算法实现(建立、遍

历、图的典型应用)

2.实验内容:

1)建立无向图和有向图的邻接矩阵存储,计算顶点的度,并按要求输出图的基本信息。

2)建立有向图的邻接表存储表示,并根据存储计算顶点的出度和入度,然后按照要求

输出图的基本信息。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++

实验七查找与排序实验

(验证性、综合性实验 6 学时)

1.目的要求:

1)学生在实习中体会各种查找和内部排序算法的基本思想、适用场合,理解开发高效算

法的可能性和寻找、构造高效算法的方法。

2.实验内容:

1)实现二分查找算法,并计算相应的ASL。

2)实现插入排序或选择排序算法。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或V isual C++