《数据结构》课程标准(专科)
一、课程的性质:
《数据结构》是计算机专业的一门必修专业基础课,它是一门理论性强,但有一定的实践性和较强实
用性的基础课程。
二、课程的教学目的与任务:
本课程的任务是讨论数据的各种逻辑结构、存储结构以及有关操作的算法。目的是使学生掌握分析研 究计算机加工的数据对象的特性,以便对所要处理的数据对象选择合适的数据结构和存储结构,并在此基 础上掌握对这些数据的操作(查、插入、删除和修改等)。同时培养学生运用C 语言编写结构清晰、正
确易读的算法,并具备初步评价算法的能力,为学生今后继续学习和研究打下坚实的基础。
三、课程的教学手段和方法:
本课程理论讲授采用教材与多媒体相配合的教学手段。
本课程包括课堂教学与实践教学两大部份。 课堂教学在方法上, 采用课堂讲授、 课后自学、 课堂讨论、
课外作业、平时测验等教学形式。实践教学部份主要是实验。
四、课程内容及学时分配 (共 72 学时,其中讲课 60 学时,实验 12 学时):
第一部份 讲授内容(60 学时)
第一章 绪论(共 4 学时)
第一节 有关概念和术语(2 学时)
一、基本要求:
掌握数据结构的一些基本概念,了解抽象数据类型的定义和使用。
二、 教学重点及难点:
本节重点是了解数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系。教学难点是 什么是数据的逻辑结构及物理结构?
三、讲授内容:
(一)数据结构的一些基本概念:数据、数据元素、数据逻辑结构、数据存储结构、数据类型、算法等。数组和链表
(二)抽象数据类型。
四、思量题:
举出一个数据结构的例子,叙述其逻辑结构、存储结构、结构上的操作内容。
第二节 算法及算法分析(2 学时)
一、基本要求:
掌握算法的时间复杂度和空间复杂度的分析方法,了解算法的描述方法。
二、教学重点及难点:
本节重点是算法的各种描述方法和算法分析(时间复杂度及空间复杂度)。教学难点是对一个算法时 间复杂度的分析。
三、讲授内容:
(一)描述算法所用的 C 语言中的一些有关问题。
(二)算法时间复杂度和空间复杂度的分析。
四、思量题:
编写算法,求一元多项式 P (x)=a +a x+a x2+a x3+…a xn 的值 P (x ),要求时间复杂度尽可能小。
n 0 1 2 3 n n 0
第二章 线性表(12 学时)
第一节 线性表的顺序存储结构(6学时)
一、基本要求:
理解线性表的定义和基本操作;掌握数组的存储(例如:数组元素在内存位置的计算方法)和在顺序 存储结构上的基本操作(如插入、删除、合并、划分和比较等)的实现。
二、教学重点及难点:
本节重点是线性表的逻辑结构、线性表的顺序存储存构C 语言描述、基本操作实现方法和简单应用。 教学难点是用 C 语言实现基本操作和如何通过顺序存储结构解决实际问题。
三、讲授内容:
(一)线性表的定义和基本操作;
(二)线性表的顺序存储结构;
(三)定义在顺序存储结构上的基本操作的实现;
(四)应用举例及分析。
四、思量题:
设有两个按元素值递增有序顺序表A 和 B,编一程序将 A 表和 B 表归并成一个新的递增有序的顺序表 C (值相同的元素均保留在 C 表中)。
第二节 线性表的链式存储结构(6学时)
一、基本要求:
掌握单链表的基本结构及基本操作(如建立、查、插入和删除等);掌握循环链表和双向链表;能 用单链表解决一些实际问题。
二、教学重点及难点:
本节重点是顺序存储结构及链式存储结构的优缺点,如何用C 语言实现链式存储结构,单链
表上基本 操作的实现,各种链表的结构:循环链表,双向链表和单链表的一些简单应用。教学难点是单链表上基本 操作的实现和建立在链表上的一些应用。
三、讲教内容:
(一)链式存储结构的实现方法;
(二)单链表的基本操作;
(三)循环链表及双向链表的实现;
(四)应用举例。
四、思量题:
分析单链表、循环链表和双向链表的相同点、不同点及各自的特点。
第三章 栈和队列(8 学时)
第一节 栈(4 学时)
一、基本要求:
掌握栈的定义,掌握顺序和链式存储的栈的基本操作实现。
二、教学重点及难点:
本节重点是栈的逻辑结构定义,用C 语言实现栈的两种方式:顺序存储结构及链式存储结构,栈的基 本操作的实现。教学难点是栈的基本操作的实现和一些具体应用。
三、讲授内容:
(一)栈的定义及基本运算;
(二)栈的顺序存储和链接存储的表示;
(三)在栈的顺序存储和链接存储上进行各种栈操作的算法;
(四)栈的应用举例。
四、思量题:
求 2 阶 Fibonacci 数列的递归算法。
第二节 对(4 学时)
一、基本要求:
掌握队列的定义、顺序存储及链接存储时的操作,掌握顺序存储下循环队列的插入、删除运算算法。 二、教学重点及难点:
本节重点是队列的逻辑定义,用C 语言实现队列的两种方式:顺序存储结构及链式存储结构,队列的 基本操作实现和循环队列的实现。教学难点是队列的基本操作的实现和循环队列的实现方式。
三、讲授内容:
(一) 队列的类型定义;
(二)队列的顺序存储(循环队)表示及各种操作的实现算法;
(三)队列的链接存储表示及各种操作的实现算法。
四、思量题:
队列管理的摹拟算法(队列采用带头结点的链表结构)。
第四章 串和数组(4 学时)
第一节 串(2 学时)
一、基本要求:
理解串的定义和基本操作, 掌握用 C 语言如何实现物理存储结构: 顺序存储结构及堆结构和串的合并、 定位、比较算法。
二、教学重点及难点:
本节重点是串的物理存储结构和串的基本操作的实现。教学难点是串的堆分配结构。
三、讲授内容:
(一)串的类型定义;
(二)串的存储结构;
(三)串的基本操作的实现。
四、思量题:
设 s 和 t 是表示成单链表的两个串,试编写一个出s 中第 1 个不在 t 中浮现的字符(假定每一个结点 只存放 1 个字符)的算法。
第二节 数组(2 学时)
一、基本要求:
掌握二维数组的存储结构和稀疏矩阵的压缩存储。了解稀疏矩阵的转置算法。
二、教学重点及难点:
本节重点是矩阵的向量存储结构和稀疏矩阵的压缩存储。教学难点是稀疏矩阵的压缩存储。
三、讲授内容:
(一)二维数组的存储结构;
(二)稀疏矩阵;
(三)应用举例。
四、思量题:
稀疏矩阵转置算法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论