数据结构与算法教学大纲.docx
- 文档编号:6832319
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:11
- 大小:19.38KB
数据结构与算法教学大纲.docx
《数据结构与算法教学大纲.docx》由会员分享,可在线阅读,更多相关《数据结构与算法教学大纲.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构与算法教学大纲
《数据结构与算法》课程教学大纲
一课程说明
1、课程基本情况
课程名称:
数据结构与算法
英文名称:
DataStructure
课程编号:
2411248
开课专业:
数学与应用数学
开课学期:
第5学期
学分/周学时:
3/3
课程类型:
专业方向选修课
2、课程性质
《数据结构与算法》是数学与应用数学专业的专业限选课。
3、本课程的教学目的和任务
课程的主要任务是使学生能够分析数据对象特征,根据逻辑结构选择合适的存储结构,设计算法并分析算法性能,为后续课程的学习及软件开发打好基础。
4、本课程的先修课程
《计算机基础》、《C语言程序设计》、《离散数学》。
5、理论教学时数及课时分配
章(专题)
主要内容
学时安排
第一部分
概论:
数据结构的概念,学习数据结构的意义,算法分析
2
第二部分
线性表:
概念及运算,顺序存储,链式存储
7
第三部分
栈和队列:
栈及栈的应用,队列及队列的应用
6
第四部分
串:
串的存储结构及基本运算,串的模式匹配算法
4
第五部分
数组和矩阵:
数组,矩阵,矩阵的压缩存储
4
第六部分
树:
树的概念,二叉树,二叉树遍历,线索二叉树,树和森林,哈夫曼树及其应用
10
第七部分
图:
图的概念,图的存储,图的遍历,生成树和最小生成树
10
第八部分
排序:
基本概念,插入排序,交换排序,选择排序,归并排序,基数排序
6
第九部分
查找:
基本概念,线性表的查找,散列表的查找
5
合计学时
二教材及主要参考书
1.唐策善等.据结构-用C语言描述.高等教育出版社.2003
2.SartajSahni.数据结构-算法与应用.机械工业出版社.2000
三教学方法和教学手段说明
教学手段为多媒体教学方式。
在课堂教学中,多采用ppt和画图程序及记事本讲述算法描述和存储描述,反映出算法的思维过程。
用任务驱动模式,通过问题解决的过程,培养学生自主分析问题和解决问题的能力。
在实验课中,用任务驱动模式,要求学生做大量实际编程实例,课程设计分为基础训练,应用实践,和项目工程三种类型。
使得个人编程和合作项目相结合,注重小组协作,集体评价。
四成绩考核办法
1考核方式:
平时考核、期中考试(闭卷)、期末考试(闭卷)。
2综合成绩计算:
执行学校的规定。
五教学内容
第一部分 概论(理论2学时)
一、教学内容 1、数据结构的概念
2、学习数据结构的意义
3、算法和算法分析。
二、教学目的及要求清楚数据结构的逻辑结构、存储结构的联系与区别,以及在数据结构上施加的运算及其实现。
三、教学重点
1、逻辑结构和数据结构在概念上的联系与区别;
2、运算的概念;
3、存储结构及其三个组成部分;
四、教学难点
1、逻辑结构、存储结构的联系与区别;
2、算法的时间复杂度分析。
第二部分线性表(理论5学时,实验2学时)
一、教学内容
1、线性表概念及运算
2、线性表的顺序存储
3、线性表的链式存储
二、教学目的及要求
1、理解线性表的定义及其运算;
2、理解顺序表和链表的定义、组织形式、结构特征和类型说明;
3、掌握在这两种表上实现的插入、删除和按值查找的算法;
4、了解循环链表、双(循环)链表的结构特点和在其上施加的插入、删除等操作。
三、教学重点
1、线性表的定义及逻辑上的特点;
2、顺序表上插入、删除和定位运算的实现;
3、单链表的结构特点及类型说明;
4、头指针和头结点的作用及区别;
5、指针操作;
6、定位、删除、插入运算在单链表上的实现;
7、循环链表、双链表的结构特点;
8、循环链表、双链表上删除与插入运算的实现。
四、教学难点
1、线性表与线性结构的联系与区别;
2、头结点在链表中的作用;指针操作;
3、删除、插入运算中的指针操作顺序;
4、双链表上指针的操作顺序。
五、实验要求(2学时)实验一:
1.实验项目名称:
线性表的运算
2.实验类型:
验证性
3.学时分配:
2学时
4.每组人数:
1人
5.实验内容及要求:
将全班同学的成绩分别组织成一个顺序表,并实现插入和删除运算。
第三部分栈和队列(理论4学时,实验2学时)
一、教学内容
1、栈
2、栈应用举例
3、队列
4、队列应用举例
二、教学目的及要求
1、理解栈的定义、特征及在其上所定义的基本运算;
2、掌握在两种存储结构上对栈所施加的基本运算的实现;
3、理解队列的定义、特征及在其上所定义的基本运算;
4、掌握在两种存储结构上对队列所施加的基本运算的实现。
三、教学重点1、栈的定义及逻辑特点;
2、栈上的基本运算;
3、栈的顺序存储结构及运算实现;
4、栈的链式存储结构;
5、入栈、出栈等运算在链栈上的实现;
6、队列的定义及逻辑特点;
7、队列上的基本运算;
8、队列的顺序存储结构及其上的运算实现;
9、队列的链式存储结构;
10、入队、出队等运算在链队列上的实现。
四、教学难点1、顺序栈的溢出判断条件;
2、循环队列的队空、队满判断条件;
3、循环队列上的插入、删除操作。
五、实验要求 实验二:
1.实验项目名称:
栈和队列的运算
2.实验类型:
验证性
3.学时分配:
2学时
4.每组人数:
1人
5.实验内容及要求:
进制转换问题:
将一个十进制数转换为N进制数。
第四部分串(理论2学时,实验2学时)
一、教学内容
1、串的存储结构及基本运算
2、串的模式匹配算法
二、教学目的及要求
1、了解串的定义;
2、理解串的存储结构及基本运算;
3、掌握串的模式匹配算法。
三、教学重点
1、串的基本概念、基本运算;
2、串的两种存储方式。
3、串的模式匹配算法。
四、教学难点
1、串的模式匹配算法;
2、串的基本运算的综合应用五、实验要求(2学时)
实验三:
1、实验项目名称:
模式匹配算法
2、实验类型:
验证性
3、学时分配:
2学时
4、每组人数:
1人
5、实验内容及要求:
实现串的模式匹配算法
第五部分 数组和矩阵(理论2学时,实验2学时)
一、教学内容
1、数组
2、矩阵
3、矩阵的压缩存储
二、教学目的及要求
1、理解多维数组的结构特点和在内存中的两种顺序存储方式;
2、理解并掌握矩阵和特殊矩阵元素在存储区中地址的计算;
3、领会稀疏矩阵的压缩方式和简单运算;
三、教学重点
1、多维数组的逻辑结构;
2、多维组的两种顺序存储方式;
3、计算给定元素在存储区中的地址;
4、对称矩阵、三角矩阵的压缩存储方式;
5、计算给定元素在存储区中的地址;
6、稀疏矩阵的三元组表示方法。
四、教学难点
稀疏矩阵的压缩存储表示下的运算的实现五、实验要求(2学时)
实验四:
1、实验项目名称:
稀疏矩阵的压缩存储
2、实验类型:
验证性
3、学时分配:
2学时
4、每组人数:
1人
5、实验内容及要求:
用稀疏矩阵的三元组表示方法实现稀疏矩阵的转置运算。
第六部分 树(理论7学时,实验3学时)
一、教学内容
1、树的概念
2、二叉树
3、二叉树的遍历
4、哈夫曼树及其应用
二、教学目的及要求1、深刻理解二叉树的定义、性质及其存储方法;
2、熟练掌握二叉树的二叉链表存储方式、结点结构和类型定义;
3、理解并掌握二叉树的三种遍历算法;
4、掌握哈夫曼算法及其应用。
三、教学重点 1、二叉树的定义、逻辑特点及五种基本形态;
2、二叉树的五个性质;
3、在二叉树上定义的基本运算;
4、二叉树的链式存储结构及其类型说明;
5、二叉树的顺序存储结构及其类型说明;
6、二叉树链式存储结构的组织方式;
7、二叉树的三种遍历方法及其算法;
8、以遍历为基础在二叉树上实现的几种运算;
9、哈夫曼树和哈夫曼算法。
四、教学难点 1、二叉树的递归定义;
2、二叉树链式存储结构的组织方式;
3、三种遍历的主要区别;
4、哈夫曼算法及其应用。
五、实验要求(3学时)
实验五:
1、实验项目名称:
树的遍历及哈夫曼树
2、实验类型:
验证性
3、学时分配:
3学时
4、每组人数:
1人
5、实验内容及要求:
实现二叉树的三种遍历方法及其算法和哈夫曼算法。
第七部分 图(理论7学时,实验3学时)
一、教学内容
1、图的概念
2、图的存储
3、图的遍历
4、生成树和最小生成树
5、最短路径
二、教学目的及要求
1、理解图的基本概念及术语;
2、掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法;
3、熟练掌握图的两种遍历(深度优先搜索遍历和广度优先搜索遍历)的算法思想、步骤,并能列出在两种存储结构上按上述两种遍历算法得到的序列;
4、掌握Prim算法构造最小生成树;
5、掌握Dijkstra算法构造最短路径;
三、教学重点
1、理解图的定义、术语及其含义;
2、掌握各种图的邻接矩阵表示法及其类型说明;
3、理解并掌握图的按深度优先搜索遍历方法和按广度优先搜索遍历方法;
4、掌握Prim算法;
5、掌握Dijkstra算法
四、教学难点1、正确理解与区别图的常用术语;
2、区别图的两种存储结构的不同点及其应用场合;
3、最短路径的算法思想。
五、实验要求(3学时)
实验六:
1、实验项目名称:
最短路径算法
2、实验类型:
验证性
3、学时分配:
3学时
4、每组人数:
1人
5、实验内容及要求:
实现Dijkstra算法
第八部分 排序(理论4学时,实验2学时)
一、教学内容
1、基本概念
2、插入排序
3、交换排序
4、选择排序
二、教学目的及要求
1、领会排序的基本思想和基本概念;
2、理解并掌握插入排序、冒泡排序、直接选择排序的基本思想、步骤、算法及时空效率分析;
三、教学重点
1、排序基本概念及内排序和外排序、稳定排序和非稳定排序的区别;
2、插入排序的基本思想、基本步骤和算法;
3、冒泡排序的基本思想、基本步骤、算法和算法分析;
4、直接选择排序的基本思想、基本步骤、算法和算法分析;
四、教学难点冒泡排序
五、实验要求(2学时) 实验七:
1、实验项目名称:
排序算法
2、实验类型:
验证性
3、学时分配:
2学时
4、每组人数:
1人
5、实验内容及要求:
实现插入排序和选择排序。
第九部分查找(理论3学时,实验2学时)
一、教学内容
1、基本概念
2、线性表的查找
3、散列表的查找
二、教学目的及要求
1、了解查找的基本思想及查找成功和不成功的概念;
2、掌握在顺序表、有序表、索引表、散列表等上的查找方法和算法,并能求出相应的平均查找长度;
三、教学重点
1、查找表的基本概念及查找原理;
2、查找表的顺序存储结构、顺序表及其类型说明;
3、查找运算在查找表和有序表上的实现;
4、散列表及散列存储和散列查找的基本思想;
5、各种散列表的组织、解决冲突的方法;
四、教学难点
理解查找表的逻辑结构是集合,它的运算以查找为核心;
五、实验要求(2学时)
实验八:
1、实验项目名称:
查找算法
2、实验类型:
综合性
3、学时分配:
2学时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 教学大纲