数据结构教学大纲

更新时间:2023-11-11 06:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据结构教学大纲

(56学时)

一、课程性质、适用专业及层次

本课程是我院计算机专业的一门综合性的专业基础课。主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。通过本课程的学习,使学生深透地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养基本的、良好的程序设计技能,编制高效可靠的程序,为学习操作系统、编译原理和数据库等课程奠定基础。

本大纲适用于三年制专科层次。适用专业——计算机应用相关专业。

二、课程教学目标

本课程的教学目标是:使学生深透地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养基本的、良好的程序设计技能,编制高效可靠的程序,为学习操作系统、编译原理和数据库等课程奠定基础。在教学中注重综合应用能力培养,切实提高学生的综合素质。

(一) 知识教学目标

1、了解数据结构及其分类、数据结构与算法的密切关系。

2、熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。 3、掌握设计算法的步骤和算法分析方法。

4、掌握数据结构在排序和查找等常用算法中的应用。 5、初步掌握文件组织方法和索引技术。 (二) 能力培养目标

培养基本的、良好的程序设计技能,编制高效可靠的程序。 (三) 思想教育目标

1、注重培养学生独立思考能力,学会科学地分析和解决问题。 2、培养学生的团结协作能力。

3、培养学生求真务实、讲求时效和一丝不苟的学习态度。 4、为学生形成良好的职业道德打下基础。

三、教学内容和要求 理论教学模块

(一) 数据结构基本概念及简单的算法分析 教学内容: 1. 什么是数据结构

2. 抽象数据类型及面向对象概念:数据类型;数据抽象与抽象数据类型;面向对象的概念;用于描述数据结构的语言

3. 数据结构的抽象层次 4. 算法定义

5. 性能分析与度量:算法的性能标准;算法的后期测试;算法的事前估计;空间复杂度度量;时间复杂度度量;时间复杂度的渐进表示法;渐进的空间复杂.

教学要求:

1. 了解数据结构基本概念及数据结构的抽象层次 2. 了解抽象数据类型及面向对象概念 3. 了解算法的定义及算法的特性 4. 掌握算法的性能分析与度量方法 (二) 数组 教学内容:

1. 作为抽象数据类型的数组:数组的定义和初始化;作为抽象数据类型的数组;数组的顺序存储方式

2. 顺序表:顺序表的定义和特点;顺序表的类定义;顺序表的查找、插入和删除;使用顺序表的事例

3. 字符串:字符串的抽象数据类型;字符串操作的实现;字符串的模式匹配

教学要求:

1. 解作为抽象数据类型的数组的定义 2. 熟练掌握顺序表的数组定义方式及实现 3. 熟练掌握字符串的定义及实现 (三) 链表 教学内容:

1. 单链表:单链表的结构;单链表的类定义;单链表中的插入与删除;带表头结点的单链表;用模板定义的单链表类;单链表的游标类;静态链表

2. 循环链表:循环链表的类定义;用循环链表解约瑟夫问题;多项式及其相加:多项式的类定义;多项式的加法

3. 双向链表 教学要求:

1. 熟练掌握单链表、循环链表及双向链表的定义及实现 2. 掌握链表的游标类定义及其应用方法 (四) 栈和队列 教学内容:

1. 栈:栈的抽象数据类型;栈的顺序存储表示;栈的链接存储表示

2. 队列 :队列的抽象数据类型;队列的顺序存储表示;队列的链接存储表示; 3. 队列的应用举例

4. 优先级队列:优先级队列的定义;优先级队列的存储表示 教学要求:

1. 熟练掌握栈的定义及实现 2. 熟练掌握队列的定义及实现

3. 掌握优先级队列的定义及链表实现 (五) 递归 教学内容:

1. 递归的概念 2. 迷宫问题

3. 递归过程与递归工作栈

4. 利用栈实现的迷宫问题非递归解法

5. 广义表:广义表的概念;广义表的表示及操作;广义表存储结构的实现;广义表的访问算法;广义表的递归算法

教学要求:

1. 掌握递归的概念

2. 掌握递归过程的机制与利用递归工作栈实现递归的方法 3. 了解利用栈如何实现迷宫问题的非递归解法 4. 掌握广义表的定义及其实现方法 5. 掌握广义表的递归算法 (六)树与森林 教学内容:

1. 树和森林的概念:树的定义;树的术语;树的抽象数据类型 2. 二叉树:二叉树的定义;二叉树的性质;二叉树的抽象数据类型 3. 二叉树的表示:数组表示;链表存储表示

4. 二叉树遍历:中序遍历;前序遍历;后序遍历;应用二叉树遍历的事例;二 叉树遍历的游标类;不用栈的二叉树中序遍历算法

5. 线索化二叉树:线索;中序线索化二叉树;前序与后序的线索化 6. 堆:堆的定义;堆的建立;堆的插入与删除

7. 树与森林:树的存储表示;森林与二叉树的转换;树的遍历;森林的遍历;二叉树的计数

8. 霍夫曼树:路径长度;霍夫曼树;霍夫曼编码 教学要求:

1. 了解树和森林的概念

2. 掌握二叉树的概念、性质及二叉树的表示 3. 熟练掌握二叉树的遍历方法及树的游标类定义

4. 掌握线索化二叉树的特性及寻找某结点的前驱和后继的方法。

5. 熟练掌握堆的定义及其实现的方法,以及用来实现优先级队列的方法 6. 掌握树与森林的实现和遍历方法

7. 掌握二叉树的计数方法及从二叉树遍历结果得到二叉树的方法 8. 掌握霍夫曼树的实现方法及霍夫曼编码的概念 (七) 集合与搜索 教学内容:

1. 集合及其表示:集合基本概念;以集合为基础的抽象数据类型;用位向量实现集合抽象据类型;用有序链表实现集合的抽象数据类型

2. 等价类:等价关系与等价类;确定等价类的链表方法;并查集

3. 简单的搜索结构:搜索的概念;静态搜索结构;顺序搜索;基于有序顺序表的对分搜索

4. 二叉搜索树:定义;二叉搜索树上的搜索;二叉搜索树的插入;二叉搜索树的删除;与二叉搜索树相关的中序游标类

5. AVI树:AVI树的定义;平衡化旋转;AVI树的插入和删除;AVI树的高度 教学要求:

1. 掌握集合及其表示方法

2. 掌握等价类的链表实现与利用并查集实现的方法 3. 熟练掌握静态搜索表的顺序搜索和折半搜索方法

4. 熟练掌握:二叉搜索树的表示、搜索、插入、删除算法及其性能分析方法 5. 掌握avl树的构造、性能分析方法 (八) 图 教学内容:

1. 图的基本概念:图的基本概念;图的抽象数据类型 2. 图的存储表示:邻接矩阵;邻接表;邻接多重表

3. 图的遍历与连通性:深度优先搜索;广度优先搜索;连通分量;重连通分量 4. 最小生成树:克鲁斯卡尔算法;普里姆算法

5. 活动网络:用顶点表示活动的网络;用边表示活动的网络 教学要求:

1. 掌握图的基本概念和图的存储表示

2. 熟练掌握图的两种遍历方法与求解连通性问题的方法 3. 掌握构造最小生成树的prim和kruskal方法 4. 熟练掌握活动网络的拓扑排序方法 5. 掌握求解关键路径的方法 (九) 排序 教学内容: 1. 概述

2. 插入排序:直接插入排序;对分插入排序;链表插入排序;希尔排序 3. 交换排序:起泡排序;快速排序

4. 选择排序:直接选择排序;锦标赛排序;堆排序

5. 归并排序:归并;迭代的归并排序算法;递归的表归并排序 6. 基数排序:多关键码排序;链式基数排序

7. 外排序:外排序的基本过程;k路平衡归并;初始归并段的生成;最佳归并树 教学要求:

1. 掌握排序的基本概念和性能分析方法

2. 掌握插入排序、交换排序、选择排序、归并排序等内排序的方法及其性能分析方法 3. 了解基数排序方法及其性能分析方法

4. 掌握多路平衡归并等外排序方法及败者树构造方法 5. 掌握生成初始归并段及败者树构造方法 6. 掌握最佳归并树的建立方法 (十) 索引与散列结构 教学内容:

1. 静态索引结构:线性索引;倒排表;m路静态查找树

2. 动态索引结构:动态的m路查找树;b_树;b_树的插入;b_树的删除;b+树

3. 散列:词典的抽象数据类型;散列表与散列方法;散列函数;处理溢出的闭散列方法;处理溢出的开散列方法;散列表分析

教学要求:

1. 熟练掌握静态索引结构,包括线性索引、倒排索引、静态索引树的搜索和构造方法 2. 熟练掌握:动态索引结构,包括b_树、b+树的搜索和构造方法 3. 熟练掌握:散列法,包括散列函数的构造、解决冲突的方法

实践教学模块

实验一 链表基本操作 实验二 栈的应用 实验三 队列的应用 实验四 二叉树的操作 实验五 图的操作 实验六 查找 实验七 排序

四、说 明

1、本课程教学内容采用模块结构,包括理论教学模块、实践教学模块,应严格按照规定的课时授课。

2、教学建议 (1)教学组织

本课程以班级形式组织教学,班级人数以40人左右为宜。 (2)教学方法和手段

①教学中应将理论教学与实践教学紧密结合,使之相互辅助,提高教学效果。 ②实践教学采用一人一机上机操作、任课教师跟班辅导的方式,使学生有充分的机会在计算机上练习,既培养学生自己动手解决问题的能力,又可以及时解决上机操作时所遇到的疑难问题。

④为加强和落实动手能力的培养,应保证上机机时不少于本教学大纲规定的实验学时。 ⑤对关键性概念、整体实现思想方面的问题可辅以课堂讨论的形式。 3.考核方式

要注意改革考核手段与方法,可通过课堂提问、学生作业、平时测验、实验及考试情况综合评定学生成绩。根据本课程实践性较强的特点,可采用笔试与机试相结合的形式。

学时分配建议(56学时)

学 时 数 课 程 内 容 模块 (一)引论 理 论 教 学 模 块 (六)树和二叉树 4 4 (二)线性表 (三)栈和队列 (四)串 (五)数组和广义表 2 4 4 4 2 4 4 4 2 讲授 实践教学 2 合计 (七)图 (八)查找 (九)排序 (十)递归 (十一)文件 实验一链表基本操作 实验二 栈的应用 实 践 模 块 实验六查找 实验七 排序 机 动 总 计 实验三 队列的应用 实验四二叉树的操作 实验五 图的操作 4 4 2 2 4 2 2 2 2 2 2 4 4 2 2 4 2 2 2 2 2 2 2 2 4 40 2 16 6 56

本文来源:https://www.bwwdw.com/article/z4sv.html

Top