数据结构-教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏大学教学大纲
数据结构A
(Data Structures A)
课程编号: 06311360
学分: 5.0
学时: 75 (其中:讲课学时:60 实验学时:0 上机学时:15)
先修课程:离散数学、程序设计基础、面向对象程序设计
适用专业:计算机科学与技术
教材:《数据结构—C++实现(第二版)》,缪淮扣等,科学出版社,2014年第二版
开课学院:计算机科学与通信工程学院
一、课程目标
《数据结构A》在计算机科学中是一门综合性的专业基础课,不仅是一般程序设计的基础,而且是设计和实现操作系统、数据库系统、编译程序及其它系统程序和大型应用程序的重要基础。本课程讨论各种数据组织中的数据的逻辑结构、存储结构以及有关操作的算法。目的是使学生学会分析研究计算机所要加工处理的数据的特征,掌握组织数据、存储数据和处理数据的基本方法,并加强在实际应用中选择合适的数据结构和设计相应算法的训练,课程的具体目标如下:
1. 知识方面
1.1理解数据结构的一些基本概念、理解并掌握算法的描述方法,理解并掌握算法的时间复杂度和空间复杂度的概念以及分析方法。
1.2理解各种数据结构的基本概念,深刻理解各种数据结构的逻辑特性,理解并熟练掌握各种数据结构的存储表示方法,理解并掌握在各种数据结构基础上的算法设计与描述,并理解和掌握对算法性能进行分析的方法以及分析结果。
1.3理解查找、排序的基本概念,掌握各种查找、排序方法及其算法描述和性能分析方法和分析结果。
2. 能力与素质方面
2.1 具备依据工程实际问题的需求合理地组织数据,并在计算机中有效地存储数据的能力。
2.2 具备为解决工程实际问题进行算法设计与分析的能力。
2.3 具备将算法通过具体的编程语言加以实现的能力。
二、课程目标与专业毕业要求指标点的对应关系
指标点2.3:具备将工程基础知识用于计算机领域复杂工程问题进行求解的能力。
指标点3.1:具备对计算机领域复杂工程问题进行识别和有效分解的能力。
指标点3.2:具备对分解后的计算机领域复杂工程问题进行表达与建模的能力。
指标点6.3:理解离散结构、计算模型在计算机问题求解中的意义与基本运用。
三、课程内容及要求
第一章绪论
本章支持课程目标:1.1理解数据结构的一些基本概念、理解并掌握算法的描述方法,理解并掌握算法的时间复杂度和空间复杂度的概念以及分析方法。
(一)教学内容与教学方法
1. 数据结构的一些基本概念:数据、数据元素、数据逻辑结构、数据
存储结构、数据类型、算法等。(讲授)
2. 算法时间复杂度和空间复杂度的分析。(讲授)
(二)知识、能力与素质等方面的基本要求
1. 了解本课程的性质、任务和目的。
2. 掌握数据结构的一些基本概念。
3. 具有对算法的时间复杂度和空间复杂度进行分析的能力。
4. 了解算法的描述方法。
(三)重点与难点
1. 重点
数据、数据元素、数据项;逻辑结构和存储结构在概念上的联系与区别;评价算法优
劣的标准及方法。
2. 难点
算法与程序的区别;逻辑结构、存储结构的联系与区别;算法的时间复杂度分析方法。
第二章线性表
本章支持课程目标:1.2理解各种数据结构的基本概念,深刻理解各种数据结构的逻辑特性,理解并熟练掌握各种数据结构的存储表示方法,理解并掌握在各种数据结构基础上的算法设计与描述,并理解和掌握对算法性能进行分析的方法以及分析结果;2.1 具备依据工程问题的需求合理地组织数据,并在计算机中有效地存储数据的能力;2.2 根据数据结构的基本概念、原理和方法,具备算法设计与分析的能力;2.3 具备将算法通过具体的编程语言加以实现的能力。
(一)教学内容与教学方法
1. 线性表的基本概念和类型定义。(讲授)
2. 线性表的顺序存储表示及基本操作的实现。(讲授+演示)
3. 线性表的链式存储表示及基本操作的实现(单链表、循环链表、双
向链表、静态链表)。(讲授+演示)
4. 一元多项式的表示及相加。(讲授+演示)
(二)知识、能力与素质等方面的基本要求
1. 掌握线性表的基本概念和类型定义。
2. 熟练掌握顺序表和单链表上的基本操作方法及其算法实现能力。
3. 掌握循环链表和双向链表的定义和它的插入、删除等操作方法。
4. 了解一元多项式的表示及相加运算。
(三)重点与难点
1. 重点
顺序表和链式表(单链表、双向链表)的基本操作。
2. 难点
链式表(单链表、双向链表)的基本操作以及一元多项式的相加运算。
第三章栈和队列
本章支持课程目标:1.2理解各种数据结构的基本概念,深刻理解各种数据结构的逻辑特性,理解并熟练掌握各种数据结构的存储表示方法,理解并掌握在各种数据结构基础上的算法设计与描述,并理解和掌握对算法性能进行分析的方法以及分析结果;2.1 具备依据工程问题的需求合理地组织数据,并在计算机中有效地存储数据的能力;2.2 根据数据结构的基本概念、原理和方法,具备算法设计与分析的能力;2.3 具备将算法通过具体的编程语言加以实现的能力。
(一)教学内容与教学方法
1. 栈的定义,栈的顺序存储表示、链式存储表示及基本操作的实现,
栈的应用(表达式计算)。(讲授+案例+演示)
2. 队列的定义,队列的顺序存储表示(循环队列)、链式存储表示(链
队列)及基本操作的实现。(讲授+案例+演示)
3. 递归。
(二)知识、能力与素质等方面的基本要求
1. 掌握栈和队列的定义。
2. 熟练掌握顺序存储表示及链式存储表示的栈和队列的基本操作的
方法以及算法实现。
3. 掌握表达式求值等方法,具有利用栈求解后缀表达式、将中缀表达
式转换成后缀表达式的能力。
4. 了解递归的概念。
(三)重点与难点
1. 重点
栈和队列的顺序存储表示、链式存储表示及基本操作的实现。
2. 难点
顺序栈的溢出判断条件;循环队列的队空、队满判断条件;递归。
第四章串、数组和广义表
本章支持课程目标:1.2理解各种数据结构的基本概念,深刻理解各种数据结构的逻辑特性,理解并熟练掌握各种数据结构的存储表示方法,理解并掌握在各种数据结构基础上的算法设计与描述,并理解和掌握对算法性能进行分析的方法以及分析结果;2.1 具备依据工程问题的需求合理地组织数据,并在计算机中有效地存储数据的能力;2.2 根据数据结构的基本概念、原理和方法,具备算法设计与分析的能力。
(一)教学内容与教学方法
1. 串的基本概念。(讲授)
2. 数组的定义以及顺序存储结构。(讲授)
3. 特殊矩阵和稀疏矩阵的定义、存储和操作。(讲授+演示)