《数据结构》课程教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程简介
《数据结构》课程教学大纲
一、课程基本信息
课程编号:1603207
学分:4学分
学时:64学时(理论44学时,实验20学时)
先修课程:计算机程序设计1603202
后续课程:数据库原理与技术A1703204、操作系统1603210
适用专业:软件工程
建议教材:李云清等.数据结构(C语言版).人民邮电出版社.2009.
开课单位:软件工程学院
二、课程的性质与任务
数据结构是计算机学科的核心课程,是专业技术基础课。本课程的目的是使学生掌握数据组织、存储和运算的基本原理和方法,培养学生进行数据结构的算法设计及分析问题的能力,能够编写出正确、清晰、质量较高的程序,并且为学习后续课程打下良好的基础,在毕业后从事专业工作时能正确选择与使用数据结构;本课程的任务是从抽象数据类型的角度讨论各种基本类型的数据结构及其应用,另外还讨论了查找和排序的各种实现方法,使学生具备基本理论分析和编程能力。
三、课程教学内容与教学要求
(一)绪论(6学时)
1. 教学内容
数据结构的发展及所处的地位;数据结构的基本概念和术语;算法描述及算法的评价标准。
2. 重点、难点
数据结构的概念和术语;算法时间复杂度的分析。
3.教学要求
(1)掌握数据结构的基本概念。
(2)进行初步算法分析。
(二)线性表(6学时)
1. 教学内容
线性表的概念、存储结构;线性表的顺序存储结构;顺序表的基本操作(插入、删除、查找)的算法实现及分析;线性表的链式存储结构的特点;链表的基本操作(插入、删除、查找)的算法实现及分析;循环链表、双向链表及其基本操作。
2. 重点、难点
线性表的顺序存储和链式存储结构及其算法。
3.教学要求
(1)掌握顺序表操作算法及算法分析。
(2)掌握链表操作算法及算法分析。
(3)了解循环链表、双向链表的特点。
(三)栈和队列(6学时)
1. 教学内容
堆栈的概念、存储结构;顺序存储和链式存储两种结构下的进栈、出栈的算法;队列的概念、存储结构;顺序存储和链式存储两种结构下的入队、出队的算法;堆栈和队列的应用。
2. 重点、难点
堆栈的应用;循环队列的实现。
3.教学要求
(1)理解堆栈的概念、存储结构。
(2)熟练掌握顺序存储和链式存储堆栈的算法。
(3)理解队列的概念、存储结构。
(4)熟练掌握顺序存储和链式存储队列的算法。
(5)了解堆栈和队列的应用。
(四)串(4学时)
1. 教学内容
字符串的概念;字符串的存储结构;字符串操作的应用。。
2. 重点、难点
字符串操作的实现
3.教学要求
(1)理解字符串的概念。
(2)掌握字符串的存储结构。
(3)掌握字符串常用操作的实现。
(五)数组和广义表(6学时)
1. 教学内容
数组的定义、基本运算和存储结构,特殊矩阵的压缩存储;广义表的定义、术语、存储结构、基本运算;递归算法设计。
2. 重点、难点
特殊矩阵的压缩存储。
3.教学要求
(1)理解数组的定义、基本运算和存储结构。
(2)理解特殊矩阵的压缩存储。
(3)理解广义表的定义、术语。
(4)掌握简单递归算法设计。
(六)树和二叉树(10学时)
1. 教学内容
树及二叉树的基本概念;二叉树的定义、性质、存储结构;遍历二叉树;哈夫曼树与哈夫曼编码;树及森林与二叉树之间的转换。
2. 重点、难点
二叉树的遍历;二叉树的性质;哈夫曼编码。
3.教学要求
(1)理解树及二叉树的基本概念。
(2)深刻理解二叉树的定义、性质、存储结构。
(3)熟练掌握二叉树的遍历。
(4)掌握哈夫曼树与哈夫曼编码。
(5)掌握树及森林与二叉树之间的转换。
(七)图(12学时)
1. 教学内容
图的概念及基本术语;图的存储结构;图的深度优先遍历和广度优先遍历的方法;最小生成树和最短路径。
2. 重点、难点
图的存储结构;图的遍历;最小生成树。
3.教学要求
(1)理解图的概念及基本术语。
(2)掌握图的邻接矩阵和邻接表的存储结构。
(3)熟练掌握图的深度优先遍历和广度优先遍历的方法。
(4)了解图的遍历在实际中的应用。
(5)掌握最小生成树创建的Prim算法和Kruskal算法。
(6)了解最短路径的概念。
(八)查找(6学时)
1. 教学内容
顺序查找、二分查找、分块查找;二叉排序树的定义,二叉排序树的创建和查找过程;哈希表定义、哈希函数构造和冲突的处理方法。
2. 重点、难点
二分查找;二叉排序树;哈希函数。
3.教学要求
(1)掌握顺序查找、二分查找、分块查找算法及其效率。
(2)熟练掌握二叉排序树的创建及二叉排序树的查找过程。
(3)掌握哈希表的构造和冲突的处理方法。
(九)排序(8学时)
1. 教学内容
排序的基本概念;插入排序;选择排序;交换排序;归并排序;基数排序。
2. 重点、难点
各种排序算法的算法思想。
3.教学要求
(1)理解排序的概念。
(2)了解各种不同排序方法的适用场合。
(3)熟练掌握直接插入排序、直接选择排序、冒泡排序的算法。
(4)掌握折半插入排序、SHELL排序、快速排序、堆排序的算法思想。
(5)掌握归并排序、基数排序的算法。
(6)了解各算法的时间复杂度。
四、课程学时分配
五、课程考核与成绩评定
1. 课程考核方式
期末考核采用闭卷笔试方式。
2. 成绩评定
本课程的总成绩由理论考试成绩、平时作业与实验课成绩3部分组成,按百分制计。其中:理论考试成绩占:70%(理论考试成绩通过期末闭卷考试方式评定),平时作业成绩占:10%(按每次作业完成情况评定)。实验课成绩占:20% (依实验课表现与实验报告情况评定)。
六、参考书目
[1]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版,1999.
[2] 李春保.数据结构习题与解析(C语言篇).北京:清华大学出版社,2001.
[3]朱战立.数据结构——Java语言描述.北京:清华大学出版社,2005.
制定人:杜叔强审定人:批准人: