数据结构教学大纲_数据结构本教学大纲
数据结构教学大纲由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构本教学大纲”。
中央广播电视大学“开放教育试点”计算机科学与技术专业(本科)
《数据结构》课程教学大纲
第一部分 大纲说明
一、课程的性质和任务
《数据结构》是计算机科学与技术专业本科生的一门必修课程。本课程介绍如何组织各种数据在计算机中的存储、传递和转换。内容包括:数组、链接表、栈和队列、递归、树与森林、图、堆与优先级队列、集合与搜索结构、排序、索引与散列结构等。课程采用面向对象的观点讨论数据结构技术,并以兼有面向过程和面向对象双重特色的C++语言作为算法的描述工具,强化数据结构基本知识和面向对象程序设计基本能力的双基训练。为后续计算机专业课程的学习打下坚实的基础。
二、先修课要求
面向对象程序设计、计算机数学(离散数学)。
三、课程的教学基本要求
1、掌握重要数据结构的概念、使用方法及实现技术;
2、学会做简单的算法分析,包括算法的时间代价和空间代价。
四、教学方法和教学形式建议
电视授课为主,结合面授辅导、面授或电子邮件答疑,进行必要的上机实验。
五、课程教学要求的层次
1、熟练掌握:要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其知识分析、设计和解答相关的应用问题。
2、掌握:要求学生能够较好地理解和掌握,并且能够做简单的分析。
3、了解:要求学生能够一般地了解的所学内容。
六、课程实验
实验内容和要求由省级电大作出具体规定,从2004年春开始按该课程实验教材规定进行。
第二部分 多种媒体教材一体化总体设计初步方案
一、学时分配
课程教学总学时数为 72学时,4学分,其中讲授学时48,实验24
教 学 内 容
讲授学时
实验学时
一、数据结构基本概念及算法分析
3学时
2学时
二、数组
3学时
2学时
三、链表
3学时
3学时
四、栈和队列
3学时
2学时
五、递归
3学时
2学时
六、树与森林
9学时
4学时
七、集合与搜索
5学时
2学时
八、图
7学时
4学时
九、排序
7学时
3学时
十、索引与散列结构
5学时
二、教学环节
1、电视教学
本课程是计算机专业基础课,内容多且带有一定的抽象性,学习起来有一定难度。为保证教学效果,采取电视集中授课方式。聘请有经验的教师担任主讲教师,尽可能利用多种媒体进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。
2、面授辅导或答疑
本课程教学过程中,面授辅导和答疑是必不可少的教学环节。各地方电大应聘请有经验、认真负责的教师任教,以习题课、专题讨论或答疑的方式,对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。面授辅导或答疑安排两周一次为宜。必要时可采用电子邮件方式直接与主讲教师联系进行答疑。
3、自学与练习
自学是获取知识的重要手段。教师讲课只是起到抛砖引玉的作用,关键还在于学生的自学。为达到自学的效果,除读懂教科书中所讲内容外,还需大量做题。其目的是要通过做题弄懂、加深对概念的理解,提高程序设计,解决问题的能力。为此,安排一定的实验上机学时。要求学生珍惜实验机时,真正做到学有所获。
学生在上机做实验前,应事先将程序、调试数据、上机操作顺序准备好,并提前使用这些调试数据人工执行过。目的是提高上机的效率和成功率,严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。
除学校提供的时间外,要求课外学生利用自己可能拥有的计算机条件,完成更多的练习,不通过大量的实践,能力和知识水平得不到有效得提高。
4、考试
考试是对学生掌握知识水平的检验。本着多练多考的原则,各地方电大可以再平时多做一些小考。要求考试内容紧扣大纲要求,既要能够检验学生的掌握情况,又要体现水平。因此,不要出难题、怪题,但也不要过于简单,适当有一些编程题。
课程考试具体规定请参看该课程考核说明。
第三部分 教学内容和教学要求
一、数据结构基本概念及简单的算法分析 3学时
1、教学内容:
什么是数据结构
抽象数据类型及面向对象概念:数据类型;数据抽象与抽象数据类型;面向对象的概念;用于描述数据结构的语言
数据结构的抽象层次
算法定义
性能分析与度量:算法的性能标准;算法的后期测试;算法的事前估计;空间复杂度度量;时间复杂度度量;时间复杂度的渐进表示法;渐进的空间复杂度
2、教学要求:
了解:什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与物理结构、逻辑结构与物理结构间的关系
了解:什么是数据类型、抽象数据类型、数据抽象和信息隐蔽原则。了解什么是面向对象
了解:算法的定义、算法的特性、算法的时间代价、算法的空间代价
掌握:用C++语言描述算法的方法,能够使用C++语言编写程序
二、数组 3学时
1、教学内容:
作为抽象数据类型的数组:数组的定义和初始化;作为抽象数据类型的数组;数组的顺序存储方式
顺序表:顺序表的定义和特点;顺序表的类定义;顺序表的查找、插入和删除;使用顺序表的事例
字符串:字符串的抽象数据类型;字符串操作的实现;字符串的模式匹配
2、教学要求:
了解:线性表的逻辑结构特性,以及线性表的两种存储实现方式
了解:作为抽象数据类型的数组的定义,数组的按行顺序存储与按列顺序存储
熟练掌握:顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算,掌握应用顺序表作为集合的简单操作
了解:稀疏矩阵的定义及其数组实现
熟练掌握:字符串的定义及实现
三、链表 3学时
1、教学内容:
单链表:单链表的结构;单链表的类定义;单链表中的插入与删除;带表头结点的单链表;用模板定义的单链表类;静态链表
循环链表:循环链表的类定义;用循环链表解约瑟夫问题;
多项式及其相加:多项式的类定义;多项式的加法
双向链表
2、教学要求:
了解:链表与数组一样,是一种实现级结构。有动态链表和静态链表之分
了解:链表有单链表、循环单链表、双向链表之分
了解:单链表的结构、特点
掌握:单链表的类定义、构造函数、单链表的插入与删除算法
了解:带表头结点的单链表的优点和类定义及相应操作的实现
熟练掌握:用模板定义的单链表类
了解:循环链表的特点,循环链表的类定义,以及用循环链表解决问题的方法
掌握:双向链表的特点,双向链表的类定义及相关操作的实现,用双向链表解决问题的方法。
四、栈和队列 3学时
1、教学内容:
栈:栈的抽象数据类型;栈的顺序存储表示;栈的链接存储表示
表达式求值:中缀表达式求值;中缀表示到后缀表示的转换
队列 :队列的抽象数据类型;队列的顺序存储表示;队列的链接存储表示;队列的应用举例
优先级队列:优先级队列的定义;优先级队列的存储表示
2、教学要求:
熟练掌握:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现。特别注意栈空和栈满的条件
了解:在表达式计算时栈是如何使用的,重点了解用后缀表示计算表达式及中缀表示改后缀表示的方法和算法思路
熟练掌握:队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现。特别是循环队列中队头与队尾指针的变化情况
掌握:优先级队列的定义、特性和优先级队列的抽象数据类型,优先级队列的插入与删除算法
五、递归 3学时
1、教学内容:
递归的概念:递归问题的求解
递归过程与递归工作栈:单向递归和尾递归的迭代实现;一般递归问题利用栈实现非递归解法
广义表:广义表的概念;广义表的表示及操作;广义表存储结构的实现;广义表的访问算法;广义表的递归算法
2、教学要求:
掌握:递归的概念。包括什么是递归,有那些种类的递归,递归问题的递归求解方法
掌握:递归过程的机制与利用递归工作栈实现递归的方法
了解:迷宫问题的递归求解思路及如何利用栈实现迷宫问题的非递归解法
掌握:利用递归解决问题的分治法和回溯法
掌握:广义表的定义及其实现方法
掌握:广义表的递归算法
六、树与森林 9学时
1、教学内容:
树和森林的概念:树的定义;树的术语;树的抽象数据类型
二叉树:二叉树的定义;二叉树的性质;二叉树的抽象数据类型
二叉树的表示:顺序表示;二叉链表表示
遍历二叉树:中序遍历;前序遍历;后序遍历;应用二叉树遍历的事例;二叉树的计数
线索化二叉树:线索;中序线索化二叉树
堆:堆的定义;堆的建立;堆的插入与删除;堆的调整算法
树与森林:树的存储表示;森林与二叉树的转换;遍历树;遍历森林
霍夫曼树:路径长度;霍夫曼树;霍夫曼编码
2、教学要求:
了解:树和森林的概念。包括树的定义、树的术语、树的抽象数据类型
掌握:二叉树的概念、性质及二叉树的表示
熟练掌握:二叉树的遍历方法
掌握:线索化二叉树的特性及寻找某结点的前驱和后继的方法
熟练掌握:堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法以及用来实现优先级队列的方法
掌握:树与森林的实现,重点在用二叉树实现
掌握:森林与二叉树的转换;树的遍历算法
掌握:二叉树的计数方法及从二叉树遍历结果得到二叉树的方法
掌握:霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算
七、集合与搜索 5学时
1、教学内容:
集合及其表示:集合基本概念;以集合为基础的抽象数据类型;用位向量实现集合抽象据类型;用有序链表实现集合的抽象数据类型
并查集:并查集的定义;并查集的实现
简单的搜索结构:搜索的概念;静态搜索结构;顺序搜索;基于有序顺序表的顺序搜索和折半搜索
二叉搜索树:二叉搜索树的定义;二叉搜索树上的搜索;二叉搜索树的插入;二叉搜索树的删除
AVL树:AVL树定义;平衡化旋转;AVL树的插入和删除;AVL树高度
2、教学要求:
掌握:集合的基本概念及其表示方法,包括位数组及有序链表的表示及其相关操作的实现算法
掌握:利用并查集实现集合的方法
熟练掌握:静态搜索表的顺序搜索和折半搜索算法及其性能分析方法
熟练掌握:二叉搜索树的表示、搜索、插入、删除算法及其性能分析方法
掌握:AVL树的平衡化旋转、构造、插入、删除时的调整方法及其性能分析
八、图 7学时
1、教学内容:
图的基本概念:图的基本概念;图的抽象数据类型
图的存储表示:邻接矩阵;邻接表;邻接多重表
图的遍历与连通性:深度优先搜索;广度优先搜索;连通分量;关节点与重连通分量
最小生成树:kruskul算法;prim算法
单源最短路径问题:dijkstra算法
活动网络:AOV网络与拓扑排序;AOE网络与关键路径
2、教学要求:
理解:图的基本概念和图的抽象数据类型
掌握:图的3种存储表示:邻接矩阵、邻接表和邻接多重表。对于前两种,要求掌握典型操作,如构造、求根、找第一个邻接顶点、找下一个邻接顶点等操作的实现算法
熟练掌握:图的两种遍历算法与求解连通性问题的方法。包括深度优先搜索和广度优先搜索算法、求连通分量的方法(不要求算法)
理解:求解关节点及构造重连通图的方法(不要求算法)
掌握:构造最小生成树的Prim算法和Kruskal算法,要求理解算法
理解:如何用Dijkstra方法求解单源最短路径问题(不要求算法)
熟练掌握:活动网络的拓扑排序算法
掌握:求解关键路径的方法
九、排序 7学时
1、教学内容:
概述
插入排序:直接插入排序;折半插入排序;链表插入排序;希尔排序
交换排序:起泡排序;快速排序
选择排序:直接选择排序;锦标赛排序;堆排序
归并排序:归并;迭代的归并排序算法;递归的链表归并排序
基数排序:多关键码排序;链式基数排序
外排序:外排序的基本过程;k路平衡归并;初始归并段的生成;最佳归并树
2、教学要求:
掌握:排序的基本概念和性能分析方法
掌握:插入排序、交换排序、选择排序、归并排序等内排序的方法及其性能分析方法
了解:基数排序方法及其性能分析方法
掌握:多路平衡归并等外排序方法及败者树构造方法
掌握:生成初始归并段及败者树构造方法
掌握:最佳归并树的建立方法
十、索引与散列结构 5学时
1、教学内容:
静态索引结构:线性索引;倒排索引;m路静态查找树
动态索引结构:动态的m路查找树;B树的定义;B树的插入;B树的删除;B+树
散列:散列表与散列方法;散列函数;处理溢出的闭散列方法;处理溢出的开散列方法;散列表分析
2、教学要求:
熟练掌握:静态索引结构,包括线性索引、倒排索引、静态索引树的搜索和构造方法
熟练掌握:动态索引结构,包括B树、B+树的搜索和构造方法
熟练掌握:散列法,包括散列函数的构造、解决冲突的方法