[工学]课程编号15101102数据结构教学大纲
- 格式:doc
- 大小:75.50 KB
- 文档页数:9
h h
课程编号15101102《数据结构》教学大纲 Data Structure
一、课程基本信息 课程编号 15101102 适用专业 教育技术学、信息工程 总学时数 51 实验学时 18 课程类别 学科基础课 教 研 室 网络与计算机 课程学分 3 上机学时 课程性质 必修课 编 写 人 黄海军 讲授学时 36 课外学时 8 开课学期 3 编写时间 2006年7月 周学时数 3 见习学时
二、课程教学目标 《数据结构》在计算机科学中是一门综合性的专业基础课。目前在我国,《数据结构》不仅仅是计算机专业的教学计划中的核心课程之一,而且是其它非计算机专业的主要选修课程之一,作为教育技术学专业和和信息工程专业,也需要较强的计算机专业知识,《数据结构》对于后续专业课程的学习非常重要。
三、教学基本要求 本课程系统地介绍数据结构的基本概念、操作及典型应用例子。通过课堂教学、课外练习和上机实习,使学生了解不同数据结构的特性,学会数据组织的方法,能根据所研究的具体问题的要求选择适当的数据结构、存储结构和相应的算法,并初步掌握算法的时间复杂度和空间复杂压的基本分析方法以及良好的程序设计技能,为后续课程的学习和科研工作的参与打下扎实的基础。 1、熟练掌握:要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其知识分析、设计和解答相关的应用问题。 2、掌握:要求学生能够较好地理解和掌握,并且能够做简单的分析。 3、了解:要求学生能够一般地了解的所学内容。 考核方法: 本课采用平时10%+实验20%+闭卷30%,为考核成绩,百分制。
四、本课程的先导课程 本课程的先导课程为《高级语言程序设计》课程,同时为《数据库原理与应用》、《面向对象程序设计》等后续专业课程的学习打下基础。h h 五、教学方法与手段 1、以课堂讲授为主,适应增加一些课堂讨论。 2、采用多媒体教学手段进行教学。 3、理论教学与上机教学相结合,提高学生的动手实践能力。
六、考核方式与成绩评定办法 本课程成绩为平时、上机、期末三部分组成,其中平时占10%,上机占20%,期末占70%。如果上机采用抽考形式,则可作如下调整:平时占10%,上机占30%,期末占60%, 具体评定办法见本课程的考试大纲。
七、使用教材及参考书目 【使用教材】
1、严蔚敏、吴伟民 编著,C语言版《数据结构》,清华大学出版社 2006年 2、严蔚敏、吴伟民 编著,C语言版《数据结构》题集,清华大学出版社 【参考书目】 1、张乃孝 编著,C语言版《算法与数据结构》,高等教育出版 2、Robert .Kruse, C.L.Tondo, Bruce Leung,《Data Structures & program design in C》2nd Edition, 清华大学出版社影印 3、李春堡等编,《数据结构习题与解析》,清华大学出版社2000.1 4、蔡子经、施伯乐等编,《数据结构教程》,复旦大学出版社 1994 12
八、课程结构和学时分配 章节 章节名称 讲授学时 辅导学时 课外学时 作业(数量) 备注
第一章 绪论 2 4 第二章 线性表 6 2 2 4 第三章 栈和队列 4 2 2 4 第四章 串 2 4 第五章 数组与广义表 2 2 4 第六章 树和二叉树 8 2 2 8 第七章 图 6 2 2 6 第八章 查找 2 2 第九章 排序 4 2 4 h h 章节 章节名称 讲授学时 辅导学时 课外学时 作业(数量) 备注 机动 (4) 共计 36 8 12
九、教学内容 第一章 绪论 (2学时) 【教学目标】 1、了解:什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与物理结构、逻辑结构与物理结构间的关系。 2、了解:什么是数据类型、抽象数据类型、数据结构的逻辑结构、存储结构和数据运算三方面的概念及相互关系。 3、了解:算法的定义、算法的特性、算法的时间代复杂度、算法的空间复杂度。 4、熟练掌握:用C语言描述算法的方法,能够使用C语言编写程序。 【重点难点】 重点是了解数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系。 难点是算法复杂度的分析方法 【教学内容】 第一节 什么是数据结构 第二节 基本概念和术语。 第三节 抽象数据类型的表示与实现 第四节 算法和算法分析量 一、算法. 二、算法设计的要求 三、算法效率的度量 四、算法的存储空间需求
第二章 线性表 (6学时) 【教学目标】 1、了解:顺序表的含义及特征。 2、了解:单链表的结构、特点。带表头结点的单链表的优点和类定义及相应操作的实现。h h 3、了解:链表动态链表和静态链表之分。链表有单链表、循环单链表、双向链表之分。 4、了解:循环链表的特点,循环链表的类定义,以及用循环链表解决问题的方法。 5、熟练掌握:顺序表和单链表的插入和删除算法。 6、熟练掌握:顺序表和单链表上实现的各种基本算法及相关的时间性能分析,解决简单应用的问题。 【重点难点】 重点是熟练掌握顺序表和单链表上实现的各种基本算法及相关的时间性能分析。 难点是能够使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题。 【教学内容】 第一节 顺序表的类型定义 第二节 线性表的顺序表示和实现 第二节 线性表的链式表示和实现 一、线性链表. 二、循环链表 三、双向链表 *第三节 一元多项式的表示及其相加(选讲)
第三章 栈和队列(4学时) 【教学目标】 1、熟练掌握:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现。特别注意栈空和栈满的条件。 2、了解:迷宫问题的递归求解思路及如何利用栈实现迷宫问题的非递归解法。 3、熟练掌握:队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现。特别是循环队列中队头与队尾指针的变化情况。 【重点难点】 重点是掌握栈和队列在两种存储结构上实现的基本运算。 难点是循环队列中对边界条件的处理。 【教学内容】 第一节 栈 一、栈的抽象数据类型的定义. 二、栈的表示和实现 第二节 栈的应用举例h h 一、数制转换. 二、括号匹配的检验 三、行编辑程序 四、迷宫求解 五、表达式求解 *第三节 栈与递归的实现(选讲) 第四节 队列 一、抽象数据类型的定义. 二、链队列 三、循环队列 *第五节 离散事件模拟(选讲)
第四章 串(2学时) 【教学目标】 1、了解:串类型的定义。 2、了解:串的存储表示。 3、掌握:串的逻辑结构、存储结构。 4、掌握:串的基本算法。 【重点难点】 重点是掌握串上实现的模式匹配算法。 难点是掌握串上实现的模式匹配算法。 【教学内容】 第一节 串的类型定义 第二节 串的表示和实现 一、定长顺序存储表示. 二、堆分配存储表示 三、串的块存储表示 *第三节 串的模式匹配算法(选讲) 一、求子串位置的定位函数 二、模式匹配的一种改进算法
第五章 数组和广义表(2学时) 【教学目标】 1、作为抽象数据类型的数组的定义,数组的按行顺序存储与按列顺序存储。 2、了解:数组的定义,数组的顺序表示和实现 3、了解:稀疏矩阵的定义及其数组实现。 4、了解:广义表的定义及其实现方法。 5、掌握:多维数组的存储方式、矩阵的压缩存储方式。 6、掌握:广义表的定义及其求表头和表尾的运算。 7、掌握:稀疏矩阵的压缩存储表示下实现的算法。 【重点难点】h h 重点是熟悉多维数组的存储方式、矩阵的压缩存储方式、广义表的定义及其求表头和表尾的运算。 难点是稀疏矩阵的压缩存储表示下实现的算法。 【教学内容】 第一节 数组的定义 第二节 数组的顺序表示和实现 第三节 矩阵的压缩存储 一、特殊矩阵 二、稀疏矩阵 第四节 广义表 第五节 广义表的存储结构 *第六节 m元多项式的表示(选讲) *第七节 广义表的递归算法(选讲) 一、求广义表的深度. 二、复制广义表 三、建立广义表的存储结构
第六章 树和二叉树(8学时) 【教学目标】 1、了解:树和森林的概念。包括树的定义、树的术语、树的抽象数据类型。 2、掌握:二叉树的概念、性质及二叉树的表示。 3、熟练掌握:二叉树的遍历方法。 4、掌握:线索化二叉树的特性及寻找某结点的前驱和后继的方法。 5、掌握:树与森林的实现,重点在用二叉树实现。 6、掌握:森林与二叉树的转换;树的遍历算法。 7、掌握:二叉树的计数方法及从二叉树遍历结果得到二叉树的方法。 8、掌握:赫夫曼树的实现方法、构造赫夫曼编码的方法及带权路径长度的计算。 【重点难点】 重点是掌握二叉树的遍历算法及其有关应用。 难点是使用本章所学到的有关知识设计出有效算法,解决与树或二叉树相关的应用问题。 【教学内容】 第一节 树的定义和基本术语 第二节 二叉树 一、二叉树的定义 二、二叉树的性质 三、二叉树的存储结构 第三节 遍历二叉树和线索二叉树 一、遍历二叉树. 二、线索二叉树