1、数据结构教学大纲资料数据结构教学大纲 适用专业: 计算机科学与技术(本科) 理论学时: 72 实践学时: 36 一、课程的性质、目的和任务 1、课程性质 数据结构是计算机学科的一门专业基础理论课,是计算机科学的核心课程之一。它介于数学、计算机硬件和软件三者之间,是操作系统、数据库、编译系统等课程以及也计算机科学各领域及相关的应用软件开发的重要基础。 2、课程的教学目的 本课程教学目的是使学生学会在非数值计算数学模型下分析计算机加工数据的理论和方法,掌握各种数据结构(线性表、堆栈与队列、树、图)的特性,为应用所涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并且灵活地进行各种数据结构的基本操
2、作,同时初步掌握对算法的时间分析和空间效率分析。另一方面,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力、良好的程序设计能力,为后续课程的学习及以后从事软件开发工作打下良好的基础。 3、课程的任务 本课程,在学习基本数据结构(即:线性表、栈、队列、串、广义表、树、图)及其基本操作算法的全过程中,坚持“既授人鱼,更授人以渔”,指导学生按照“非结构化 结构化 对象化 同构化”的特点学习和利用可指导各种计算机语言进行数据结构算法实现的共性本质和方法,学会“举一反三、触类旁通,自主学习、力求创新”。 本课程, 要求学生熟悉数据信息在计算机系统中的逻辑结构、物理结构,掌握各种数据结构(
3、例如:线性表,堆栈与队列,树,图)特性,可把现实信息抽象成它所对应的、科学数据及其数据结构,能灵活运用各种数据结构及其基本操作解决实际问题的程序设计能力。 本课程,注重“算法 数据结构 程序设计”的实践动手能力培养,通过 “习题练习、上机实习,课程设计”三位一体的训练,促使学生把理论学习和上机编程密切结合起来,可设计出正确、规范、严密、高效的算法并能编程实现,提高学生的逻辑思维能力、抽象能力和应用能力。 二、课程与其他课程的关系 1、先修课程:高等数学、高级语言程序设计(C语言) 2、关联课程:离散数学等 三、课程内容与重点难点 第一章 绪论 教学目的与要求: 1掌握数据结构、存储结构和数据类
4、型的基本概念及相关术语 2理解算法要素的确切含义 3掌握算法设计的基本要求以及分析算法的时间与空间复杂度的方法 教学内容: 1数据结构的课程体系 2基本概念和术语 3算法和算法分析 重点:数据与数据元素,抽象数据类型表示法,类 C 语言语法,渐近时间复杂度的意义、作用以及计算方法 难点:数据元素间的四种结构关系,抽象数据类型表示法,渐近时间复杂度的意义 第二章 线性表 教学目的与要求: 1掌握线性表的逻辑结构特性 2掌握线性表的顺序存储结构和链式存储结构的描述方法及其结构特点 3熟练掌握线性表在顺序存储结构和链式存储结构的结构上进行相关的查找、插入、删除等操作的算法,并且能够从时间和空间复杂度
5、的角度综合比较两种存储结构的不同特点 教学内容 1线性表的定义 2线性表的顺序表示和实现 3线性表的链式表示和实现 4线性表的应用 重点:线性表的定义,线性表的顺序表示和实现方法,线性链表的单链表表示及实现方法。定位结点、删除结点、插入结点操作在单链表上的实现,循环链表、双链表的结构特点,循环链表、双链表上删除与插入操作的实现。 难点:线性链表的概念,线性表的顺序表示和实现方法,线性表与线性结构的联系与区别,链表与链式结构的联系与区别,指针操作,一元多项式的相加算法 第三章 栈和队列 教学目的与要求: 1掌握栈和队列的结构特性和描述方法 2熟练掌握出栈和入栈的基本操作,以及循环队列和链队列的出
6、队列和入队列的基本操作实现算法 3熟悉栈和队列的一些典型应用实例 教学内容: 1栈的定义、表示和实现 2栈的应用举例 3栈与递归的实现 4队列的定义、表示与实现 5队列的应用举例 重点:栈和队列的基本概念、基本算法,栈的顺序存储表示与实现方法,利用栈实现行编辑 , 利用栈实现表达式求值,链队列的表示与实现 难点:栈和队列的应用算法,顺序栈的溢出判断条件 第四章 串 教学目的与要求: 1掌握串的结构特性以及串的基本操作 2掌握针对字符串进行操作的常用算法 3熟练运用字符串处理函数 教学内容: 1串类型的定义 2串的表示和实现 3串的模式匹配算法 4串操作应用举例 重点:串的定义,串的表示和实现,
7、定长顺序存储表示法,堆分配存储表示法,简单文本编辑器实现 难点:串的表示和实现,堆分配存储表示法,串的存储管理 第五章 数组与广义表 教学目的与要求: 1掌握一维数组以及多维数组的存储和表示方法 2掌握对特殊矩阵进行压缩存储时的下标变换公式 3了解稀疏矩阵的三元组压缩存储表示方法及适用范围 4掌握稀疏矩阵的三元组表示方法及矩阵转置算法 5了解广义表的定义、存储结构和基本运算 教学内容: 1数组的定义 2数组的顺序表示 3矩阵的压缩存储 4广义表的定义 5广义表的存储结构 6m 元多项式的表示 7广义表的递归算法 重点:数组的定义,数组的顺序表示方法,广义表的操作及意义,矩阵的压缩存储 难点:广
8、义表存储结构,广义表的递归算法 第六章 树和二叉树 教学目的与要求: 1掌握树的基本定义及其相关的术语的含义 2熟练掌握二叉树的结构特性,了解相应的证明方法 3熟悉三种遍历二叉树的递归算法 4掌握二叉树线索化的实质及线索化的过程 5掌握树、森林与二叉树的转换及其各自遍历的对应关系 6掌握哈夫曼编码的原理及实现方法 教学内容: 1树的定义和基本术语 2二叉树定义、性质和存储结构 3遍历二叉树和线索二叉树 4树和森林 5树与等价问题 6赫夫曼树及其应用 7回溯法与树的遍历 8树的计数 重点:二叉树的定义和逻辑特点,二叉树的基本运算,二叉树的链式存储结构的组织方式,二叉树的三种遍历方法及其算法,一般
9、树转化为二叉树的方法,哈夫曼树及哈夫曼编码,哈夫曼编码的应用 难点:二叉树的递归定义,二叉树链式存储结构的组织方式,三种遍历的区别,哈夫曼编码 第七章 图 教学目的与要求: 1掌握图的定义和术语 2掌握图的两种存储结构和两种遍历策略 3熟悉图的最小生成树的生成方法 4掌握拓扑排序、关键路径的算法思想 5掌握网络顶点之间的最短距离的计算思想 教学内容: 1图的定义和术语 2图的存储结构 3图的遍历 4图的连通性问题 5有向无环图及其应用 6最短路径 重点:图的定义、术语及其含义,各种图的邻接矩阵表示法及其类型说明,图的按深度优先搜索遍历方法和按广度优先搜索遍历方法,生成树和最小生成树的概念, P
10、rim 算法,拓扑序列和拓扑排序的概念和算法思想,关键路径的算法思想,最短路径的算法思想 难点:理解图的常用术语,图的两种存储结构的不同,关键路径,最短路径算法 第八章 动态存储管理 教学目的与要求: 了解可利用空间表及分配方法、首次拟合法、最佳拟合法,以及利用边界标识法、伙伴系统进行内存管理的分配、回收算法 教学内容: 1动态存储管理内容 2可利用空间表及分配方法 3边界标识法 4伙伴系统 5无用单元收集 6存储紧缩 第九章 查找 教学目的与要求: 1掌握顺序表和有序表的查找方法 2掌握查找效率的计算方法 3熟练掌握二叉排序树的构造和查找方法 4理解平衡二叉树的维护平衡的方法 5掌握散列函数
11、构造方法及冲突解决方案 教学内容: 1静态查找表 2动态查找表 3哈希表 重点:查找表的基本概念,折半查找法、二叉排序树的定义和查找算法,二叉平衡树的概念,查找算法在顺序存储表、有序表的实现,散列表的基本思想,各种散列表的组织、解决冲突的方法 难点:二叉排序树上的插入和删除算法,平衡树、 B 树的建立,平衡二叉树的旋转平衡算法,散列表上的有关算法 第十章 内部排序 教学目的与要求: 1掌握排序的定义和各种排序方法的基本思想及其特点 2了解各种排序方法的排序过程及其依据的原则 3掌握快速排序和堆排序等方法 4能够进行各种排序方法的时间复杂性估计或分析 教学内容: 1内部排序的基本概念 2插入排序
12、 3快速排序 4选择排序 5归并排序 6基数排序 7各种内部排序方法的比较讨论 重点:排序以及内部排序的基本概念,直接插入排序、快速排序、选择排序、 归并排序 、基数排序的思想和算法 难点: 快速排序算法,堆排序算法 第十一章 外部排序 教学目的与要求: 1了解外存储器及文件的基本知识 2了解外排序的定义和基本方法 3掌握磁盘排序和磁带排序两种外排序的基本思路 教学内容: 1. 外存信息的存取 2. 外部排序的方法 3. 多路平衡归并的实现 4. 置换 - 选择排序 5. 最佳归并树 重点:外部排序的方法 难点:多路平衡归并的实现 第十二章 文件 教学目的与要求: 1了解文件的基本概念、文件的
13、分类 2了解不同类型文件的存取方法 教学内容: 1有关文件的基本概念 2顺序文件 3索引文件 4ISAM 文件和 VSAM 文件 5直接存取文件(散列文件) 6多关键字文件 四、学时分配 章 节 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 课程设计 合计 内 容 理 论 4 6 6 4 4 10 10 4 8 8 4 4 72 实 践 2 4 4 2 4 4 2 2 12 36 绪论 线性表 栈和队列 串 数组与广义表 树和二叉树 图 动态存储管理 查找 内部排序 外部排序 文件 五、实践内容 1、数组和指针在VC环境中的简单应用 2、对
14、线性表进行顺序存贮的操作的实现 3、对线性表进行链式存贮的操作的实现 4、栈的应用 5、队列的应用 6、串类型及相关串操作算法的实现 7、二叉树的基本操作 8、二叉树的应用 9、图的创建遍历等基本操作 10、图的应用 11、查找算法的设计和实现 12、排序算法的设计和实现 13、课程设计 六、教材与参考书 1、推荐教材: 数据结构(C语言版)(第二版),严蔚敏、吴伟民著,清华大学出版社,2006年 2、参考书: 1 数据结构 (C 语言版 ),胡学钢著,高等教育出版社,2004年 2 数据结构与算法,Sartaj Sahni (美)著 ,汪诗林 孙晓东等译,机械工业出版 社,2006年 3 数据结构题集,严蔚敏等,清华大学出版社,2002年 4 数据结构习题与解析,李春葆著,清华大学出版社,2002 七、实践技能或课程考核要求 考试类型:考试(闭卷)成绩为:实验成绩+卷面成绩,其中实验成绩占30%,卷面成绩占70%。 八、对学生自学和习题的要求 1、自学要求:除读懂教科书中所讲内容外,建议阅读相关参考书,以加深对知识的理解和应用。 还需大量做题。其目的是要通过做题弄懂、加深对概念的理解,提高解决问题的能力。为此,安排一定的实验上机学时。 2、习题要求:除布置为上机实验的习题外,要求学生完成所收集习题中的40以上。 8 / 8
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100