一、实验教学的目标与基本要求
《数据结构》是一门实践性较强的课程,不少学生在解答习题尤其是算法设计题时,觉得无从下手,感觉困难。为了帮助学生更好地学习、理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,通过上机解决一些典型问题,实验中的内容和课堂教学内容密切相关,所需的各种专业技术知识大多可从教科书中找到,但须经反复实践才能掌握。通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所学到的专业技术知识。
二、基本理论与实验技术知识
《数据结构》是计算机专业的专业基础课程之一。
1、通过实验,进一步培养学生利用C语言进行编程和调试程序的能力,使学生能够利用C语言编写较复杂的程序。
2、通过实验,加深学生对教学内容的理解,验证所学的算法和数据结构。
3、通过实验,培养学生设计数据结构的能力和根据数据结构设计算法的能力。
4、通过对具体问题的剖析和解决,进行综合性训练,培养学生软件开发的实际动手能力,为学好后续课程打下坚实的基础。
三、实验方法、特点与基本要求
本课程的实验要求采用VC++ 6.0,通过上机实践,加深对课程的理解,更好的掌握算法设计,并达到应用与设计程序的目的,全面掌握所学的知识。通过本课程的学习,要求学生掌握链表、栈、队列、字符串、二叉树、图、内部排序等的基本操作,为后续面向对象程序设计类课程打下坚实的基础。
四、主要仪器设备
序 号 |
仪器设备名称 |
序号 |
仪器设备名称 |
1 |
装有操作系统的微机一台 |
|
|
2 |
安装VC++ 6.0 |
|
|
五、实验项目的设置与内容提要
序号 |
实 验 项 目 |
主 要 内 容 |
实验要求 |
实验类型 |
学时分配 |
每组人数 |
备注 |
1 |
链表的操作 |
建立一个带头结点的单链表,然后对该单链表进行插入删除结点操作,输出各种操作的结果 |
必做 |
验证 |
2 |
1 |
|
2 |
栈的运算 |
括号配对,从键盘输入三种不同类型的括号,通过对栈的调用,对三种不同括号进行正确配对 |
必做 |
验证 |
2 |
1 |
|
3 |
队列的运算 |
利用队列的先进先出的特征,输出杨辉三角形 |
必做 |
设计 |
2 |
1 |
|
4 |
串的模式匹配算法 |
在字符串S1中查找是否存在字符串S2,若存在返回字符串S2在字符串S1中的位置 |
必做 |
设计 |
2 |
1 |
|
5 |
二叉树的遍历 |
采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历的操作,求所有叶子及结点总数的操作 |
必做 |
设计 |
4 |
1 |
|
6 |
图的应用 |
给定若干个路由器(顶点)及各路由器之间的代价值(顶点之间的权值),求从指定路由器(始点v0)开始,到其它各路由器(其余各顶点)的最短路径,直到所有路由器(顶点)计算完成为止 |
必做 |
设计 |
2 |
1 |
|
7 |
快速排序 |
通过一趟将待排记录分割成独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字小。再对两个部分分别进行快速排序。 |
必做 |
设计 |
2 |
1 |
|
六、实验报告要求
要求实验目的明确,字迹工整,格式完整、规范,要求清晰,能有完整的实验内容和步骤,实验过程中积极认真仔细,态度端正,实验后能及时总结和归纳出实验结果。
七、考核方式与成绩评定
1.实验考核内容:
(1)实验课出勤情况,必选实验课学生必须参加实验。
(2)积极主动认真做实验。
(3)实验方案过程结果要正确。
2.成绩评定标准:
优秀:实验中认真操作,实验报告独立完成,字迹工整,实验步骤清晰,数据处理及计算正确,有实验分析和总结(特别是总结出实验中出现的问题及解决的方法等);对实验过程自己设计的 ,实验步骤自己编写的,只要无根本性错误。
良好:实验中认真操作,实验报告独立完成,字迹工整,实验步骤清晰,数据处理及计算无根本错误。
中等:实验中认真操作,实验报告独立完成,实验步骤清晰,数据处理及计算无根本错误。
及格:实验中基本能认真操作,实验报告按标准格式独立完成,数据处理及计算无根本错误。
不及格:实验中不认真操作,实验报告不完成,抄袭实验报告,字迹潦草,数据处理及计算错误等。
八、推荐教材和教学参考书目与文献
推荐教材:
《数据结构(C语言版)》(第2版) 耿国华等编著 高等教育出版社 2019年12月
参考书:
1、《数据结构(C语言版)》严蔚敏 吴伟民 清华大学出版社 2016年4月
2、《数据结构习题与解析》(C语言版)第3版 李春葆 清华大学出版社 2016年11月
大纲制定人:周雪敏
大纲审定人:
教学院长(主任):
制定日期:2020年2月17日