《数据结构》教学教案.docx
- 文档编号:10802516
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:41
- 大小:25.62KB
《数据结构》教学教案.docx
《《数据结构》教学教案.docx》由会员分享,可在线阅读,更多相关《《数据结构》教学教案.docx(41页珍藏版)》请在冰豆网上搜索。
《数据结构》教学教案
教案(理论课)
第1次课2学时
章节
第一章绪论
1.1数据结构的发展
1.2数据结构的意义
1.3数据结构的基本概念和术语
讲授主要内容
介绍数据结构中常用的基本概念和术语以及学习数据结构的意义,要求了解本章介绍的各种基本概念和术语。
重点
难点
重点:
数据结构及相关概念;
数据的逻辑结构、存储结构及运算之间的关系;
难点:
数据元素;逻辑关系;抽象数据类型
要求掌握知识点和分析方法
●了解数据结构的发展
●理解数据结构中的基本概念
●理解抽象数据类型的概念、记法和用法
教学设计
1.从数据在计算机中的处理过程入手,介绍课程
2.介绍数据结构课程的意义及其在教学计划中的核心地位
3.介绍教材整体结构
4.提出学习方法及要求:
强调课后练习及实验的重要性,介绍配套网络教学平台
5.讲授数据结构的基本概念
6.通过实例辅助分析数据结构的三个方面:
逻辑结构、存储结构及运算,重点结束逻辑关系,强调存储结构如何表示逻辑关系。
注意引申三者之间的关系
7.在理解数据类型和抽象的基础上,给出抽象数据类型的定义。
分析:
为什么对数据结构仅定义基本操作
作业布置
习题1
一.1~3二.1~6三.1,2
教学后记
教案(理论课)
第2次课2学时
章节
第一章绪论
1.4算法及其分析
讲授主要内容
介绍算法的定义,算法的基本特性,算法的描述方法,讲授算法复杂度的分析方法。
重点
难点
重点:
算法的定义及基本特性;
算法复杂度的分析方法。
难点:
算法复杂度的分析方法。
要求掌握知识点和分析方法
●理解算法的定义及基本特性
●理解算法的描述方法
●理解算法与程序的关系
●掌握算法复杂度的分析方法
教学设计
1.以实例引入算法定义
2.从使用的角度分析算法的特性
3.介绍算法的描述方法:
自然语言、流程图、程序设计语言等
4.分析算法与程序的关系,指出:
程序设计的核心是算法设计
5.给出算法分析的意义,介绍事前分析法和事后统计法
6.给出问题规模、语句频度、大O记号的概念
7.结合例题,讲授常用的几种时间复杂度
作业布置
习题1
一.4二.7~9三.3四.
教学后记
教案(理论课)
第3次课2学时
章节
第二章线性表
2.1线性表的逻辑结构
2.2线性表的顺序存储结构
讲授主要内容
举例讲解线性表,分析其逻辑结构。
介绍线性表的抽象数据类型。
讲授顺序表的存储结构及特点,分析讲授顺序表的各种基本运算。
重点
难点
重点:
线性表的定义及其逻辑结构
顺序表的存储结构及特点
顺序表的基本运算及其性能分析
难点:
顺序表的基本运算及其性能分析
要求掌握知识点和分析方法
●掌握线性表的定义及其逻辑结构
●理解线性表的抽象数据类型
●掌握顺序表的存储结构及特点
●掌握顺序表的基本运算:
插入、删除及查找运算及其性能分析
教学设计
8.给出线性表的定义,注意强调要点,分析其逻辑结构
9.给出线性表的抽象数据类型
10.给出顺序表的存储结构示意图,强调存储要点,总结存储特点
11.给出顺序表的建表算法
12.利用算法动画演示,分析顺序表的插入运算执行过程,写出插入算法并分析
13.利用算法动画演示,分析顺序表的删除运算执行过程,写出删除算法并分析
14.利用算法动画演示,分析顺序表的查找运算执行过程,写出查找算法及分析
作业布置
习题2
一.1~6二.1,2,4,5,6三.1,2
教学后记
教案(实验课)
第4次课2学时
章节
第二章线性表
线性表的顺序存储结构
重点
难点
重点:
顺序表的基本运算及其性能分析
难点:
顺序表的基本运算及其性能分析
要求掌握知识点和分析方法
●掌握顺序表的存储结构及特点
●掌握顺序表的基本运算:
插入、删除及查找运算及其性能分析
教学内容
实现在顺序表上的基本运算。
要求:
1.实现顺序表的建立,采用给定的数组做输入和从键盘输入两种方式实现
2.实现顺序表的插入
3.实现顺序表的删除
4.实现顺序表的查找:
按值查找和按位置查找
5.实现顺序表的逆置
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第5次课2学时
章节
第二章线性表
2.3线性表的链式存储结构
讲授主要内容
举例讲解链表,分析其逻辑结构。
讲授单链表上实现的基本运算。
重点
难点
重点:
链表的结构。
单链表上实现的基本运算:
头插法
难点:
单链表上实现的基本运算
要求掌握知识点和分析方法
●理解链表的含义及其逻辑结构
●掌握单链表的基本运算及其性能分析
教学设计
15.给出单链表的存储结构示意图,强调存储要点,总结存储特点
16.利用算法动画演示,分析单链表的头插法、尾插法建表运算执行过程,写出算法并分析
17.利用算法动画演示,分析单链表的插入运算执行过程,写出插入算法并分析
18.利用算法动画演示,分析单链表的删除运算执行过程,写出删除算法并分析
19.利用算法动画演示,分析单链表的查找运算执行过程,写出查找算法及分析
作业布置
习题2
一.7~10二.3,7三.3,4,5
教学后记
教案(理论课)
第6次课2学时
章节
第二章线性表
2.4顺序表与链表的比较
2.5案例实现
讲授主要内容
讲授单循环链表、双链表。
分析顺序表与链表的差异。
分析本章案例。
重点
难点
重点:
单循环链表与双链表的逻辑结构与基本操作。
顺序表与链表的比较
难点:
单循环链表的基本操作
双链表的基本操作
要求掌握知识点和分析方法
●掌握循环链表、双链表的存储结构
●熟练掌握循环链表的基本操作
●掌握双链表的基本操作
●掌握顺序表与链表的比较
教学设计
1.通过在单链表中查找前驱结点的问题,引入单循环链表。
分析单循环链表的逻辑结构及其与单链表的区别。
解决“求循环链表中任意一个结点的前驱结点”的问题
2.分析双链表的逻辑结构及其特点,通过图示讲解在双链表上实现的基本查找
3.分析解析顺序表与链表在时间、空间、程序设计语言三方面的区别与联系。
4.通过顺序表、链表两种方式实现本章案例:
通讯录管理系统。
作业布置
习题2
一.11~14二.8,9,10三.6,7
教学后记
教案(实验课)
第7次课2学时
章节
第二章线性表
线性表的链式存储结构
重点
难点
重点:
链表的基本运算及其性能分析
难点:
链表的基本运算及其性能分析
要求掌握知识点和分析方法
●掌握链表的存储结构及特点
●熟练掌握链表的基本运算:
插入、删除及查找运算及其性能分析
●掌握单循环链表、双链表的基本操作
教学内容
实现在顺序表上的基本运算。
要求:
1.实现链表的建立,选用头插法或尾插法实现
2.实现链表的插入
3.实现链表的删除
4.实现链表的查找:
按值查找和按位置查找
5.实现单链表中查找任意顶点前驱的操作
6.实现双链表中的插入运算:
在值为x的结点前插入值为2x的结点
7.实现单链表的逆置
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第8次课2学时
章节
第三章栈和队列
3.1栈
讲授主要内容
分析栈的逻辑结构,讲述顺序栈与链栈的存储特点及分别在顺序栈和链栈上实现的运算。
介绍“顺序栈和链栈的比较”,以所学的知识实现“栈的应用”。
重点
难点
重点:
20.栈的类型定义。
21.栈的顺序存储和链接存储的表示。
22.在栈的顺序存储和链接存储上进行各种栈操作的算法。
难点:
1.栈的顺序存储和链接存储的表示。
2.在栈的顺序存储和链接存储上进行各种栈操作的算法。
要求掌握知识点和分析方法
●掌握栈的定义及其逻辑结构
●理解栈的抽象数据类型
●掌握顺序栈和链栈的实现方法
●了解双栈共享空间
教学设计
1.以汉诺塔游戏引入栈,分析其逻辑结构及其“后进先出”的特性
2.给出栈的抽象数据类型
3.分析顺序栈的工作原理,介绍“上溢”和“下溢”
4.利用算法动画演示,分析顺序栈的进栈、出栈过程,给出相应算法并分析
5.利用例题,分析链栈的进栈、出栈过程,给出相应算法并分析
6.介绍顺序栈和链栈的比较:
从时间性能和空间性能两个角度
7.简单介绍双栈的原理
8.介绍栈的应用:
递归
作业布置
习题3
一.1,2,7~10二.2,4,5,6三.1,2,3,4四五.1~4
教学后记
教案(实验课)
第9次课2学时
章节
第三章栈和队列
3.1栈
重点
难点
重点:
1.栈的类型定义。
2.栈的顺序存储和链接存储的表示。
3.在栈的顺序存储和链接存储上进行各种栈操作的算法。
难点:
1.栈的顺序存储和链接存储的表示。
2.在栈的顺序存储和链接存储上进行各种栈操作的算法。
要求掌握知识点和分析方法
●掌握栈的定义及其逻辑结构
●理解栈的抽象数据类型
●掌握顺序栈和链栈的实现方法
●了解双栈共享空间
教学内容
一、讲授:
1.介绍栈的应用:
表达式求值
2.利用算法动画演示,分析括号匹配算法
二、上机完成案例。
要求:
1.实现算数表达式的求值
2.实现判定表达式是否为“回文”
3.实现本章案例:
汉诺塔
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第10次课2学时
章节
第三章栈和队列
3.2队列
讲授主要内容
讲解队列并分析其逻辑结构。
讲授队列上实现的基本运算。
重点
难点
重点:
1、队列的类型定义。
2、队列的顺序存储(循环队)和链接存储表示及各种操作的实现算法。
难点:
1、队列的顺序存储(循环队)和链接存储表示及各种操作的实现算法。
要求掌握知识点和分析方法
●理解顺序队列、循环队列、链队列的类型定义及其逻辑结构
●掌握顺序队列、循环队列、链队列的基本运算及其性能分析
●了解双端队列
教学设计
23.给出队列的存储结构示意图,强调存储要点,总结存储特点
24.利用算法动画演示,分析顺序队列的入队、出队过程
25.由例题引出顺序队列的“假溢出”现象
26.分析“假溢出”的解决方案,引入循环队列的教学。
27.讲授循环队列的基本操作,注意分析队空和队满的判定条件
28.讲授链队列的基本操作
29.介绍双端队列
30.分析循环队列与链队列的对比
作业布置
习题3
一.3,11~16二.1,3,7三.5~8五.5,6,7
教学后记
教案(实验课)
第11次课2学时
章节
第三章栈和队列
3.3队列
重点
难点
重点:
1、队列的类型定义。
2、队列的顺序存储(循环队)和链接存储表示及各种操作的实现算法。
难点:
1、队列的顺序存储(循环队)和链接存储表示及各种操作的实现算法。
要求掌握知识点和分析方法
●掌握链表的存储结构及特点
●熟练掌握链表的基本运算:
插入、删除及查找运算及其性能分析
●掌握单循环链表、双链表的基本操作
教学内容
二、讲授:
1.介绍队列的应用:
舞伴问题
2.利用算法动画演示,杨辉三角问题
二、上机完成案例。
要求:
1.实现本章案例:
键盘缓冲区
2.实现本章案例:
杨辉三角问题
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第12次课2学时
章节
第四章串
讲授主要内容
串的定义及基本操作;串的存储结构;串的模式匹配算法。
重点
难点
重点:
1、“串”类型定义中各基本操作。
2、串的模式匹配算法:
BF算法。
难点:
串的模式匹配算法。
要求掌握知识点和分析方法
●掌握串的定义及其基本概念
●理解串的抽象数据类型
●掌握串的基本操作
●理解串的存储结构
●掌握BF算法
●了解KMP算法
教学设计
9.由案例给出串的定义,总结串的特性。
注意区分空串与空白串的不同。
10.介绍串的抽象数据类型
11.举例分析串的基本操作
12.分析串与普通线性表的不同,引出串的三种存储结构
13.利用算法动画演示,分析模式匹配的基本过程,给出相应算法并分析
14.分析BF算法,找出其效率低下的原因,引出KMP算法。
对KMP算法的基本思想做简单介绍,具体分析及算法实现可以根据情况由学生课后完成。
作业布置
习题4
教学后记
教案(理论课)
第13次课2学时
章节
第五章数组和广义表
5.1多维数组
5.2矩阵的压缩存储
讲授主要内容
数组的定义;数组的存储结构与寻址;
特殊矩阵的压缩存储;稀疏矩阵的压缩存储
重点
难点
重点:
掌握二维数组的存储方式和矩阵的压缩方式
难点:
特殊矩阵的压缩存储;稀疏矩阵的压缩存储
要求掌握知识点和分析方法
●掌握数组的定义
●熟练掌握二维数组的存储方法及寻址
●掌握矩阵压缩存储的思想
●掌握特殊矩阵的压缩存储方法及寻址
●掌握稀疏矩阵的压缩存储方法及寻址:
三元组表
教学设计
31.给出数组的定义
32.提出问题:
多维数组如何存储在内存中呢?
引入二维数组的存储方法:
行优先和列优先存储方法
33.给出练习,加强学生对二维数组存储方法及寻址方式的理解
34.给出一个对称矩阵的例子,分析一下采用普通存储方式的缺陷,提出矩阵压缩存储。
35.介绍对称矩阵、三角矩阵、对角矩阵的存储方式
36.给出一个稀疏矩阵的例子,引出稀疏矩阵的压缩存储。
37.介绍三元组表示法,并以三元组为存储结构分析稀疏矩阵转置算法。
作业布置
习题5
一.1~3二.1~5三.1,2,3四.1,2五.1
教学后记
教案(理论课)
第14次课2学时
章节
第五章数组和广义表
5.2矩阵的压缩存储
5.3广义表
5.4案例实现
讲授主要内容
稀疏矩阵的十字链表表示法;广义表
重点
难点
重点:
掌握广义表的基本概念。
难点:
十字链表、广义表的存储结构和操作。
要求掌握知识点和分析方法
●掌握稀疏矩阵的压缩存储方法及寻址:
十字链表
●掌握广义表的定义及基本性质和基本运算
●理解广义表的存储结构
教学设计
8.由三元组顺序表的缺点引出十字链表,画出存储示意图
9.分析十字链表的建立算法
10.给出广义表的定义,分析广义表的性质,指出与线性表、数组的区别联系
11.讲授广义表的基本运算,通过课堂练习加深学生的理解
12.介绍广义表的存储结构
13.根据本章的理论知识,引导学生学习本章的案例实现
作业布置
习题5
一.4~6二.6三.4,5四.3,4五.2,3
教学后记
教案(理论课)
第15次课2学时
章节
第六章树
6.1树
6.2二叉树
讲授主要内容
树的定义和基本术语;树的抽象数据类型定义;树的存储结构;二叉树的定义;二叉树的基本性质;二叉树的抽象数据类型定义
重点
难点
重点:
1.树的定义和基本术语
2.树的存储结构
3.二叉树的定义
4.二叉树的性质
难点:
1.二叉树的定义
2.二叉树的性质
要求掌握知识点和分析方法
●掌握树的定义和基本术语
●理解树的抽象数据类型
●掌握树的四种存储结构
●掌握二叉树的定义和基本性质
●理解二叉树的抽象数据类型
教学设计
15.分析“团委的人事管理系统”组织图,给出树的定义,深刻理解树的逻辑结构。
16.结合实例分析讲授树的基本术语
17.给出树的抽象数据类型
18.提出问题:
如何实现树的存储,引出树的各种存储结构。
分别从双亲、孩子多个角度引出解决方案,并分析各种存储结构的优缺点
19.给出二叉树的定义,分析根据二叉树的定义得出的二叉树的基本形态
20.给出两种特殊形态的二叉树——满二叉树和完全二叉树的定义,说明其特点
21.推导、证明二叉树的基本性质
22.介绍二叉树的抽象数据类型
作业布置
习题6
一.1,2,7~10二.2,4,5,6三.1,2,3,4四五.1~4
教学后记
教案(理论课)
第16次课2学时
章节
第六章树
6.2二叉树
讲授主要内容
二叉树的存储结构;二叉树的遍历;二叉树遍历的应用
重点
难点
重点:
二叉树的遍历
难点:
二叉树的遍历;二叉树遍历的应用
要求掌握知识点和分析方法
●熟练掌握二叉树的遍历操作
●掌握二叉树遍历的应用
教学设计
1.分析二叉树的三种存储结构:
顺序存储、二叉链表、三叉链表
2.由二叉树的组成得到三种遍历次序:
前序遍历、中序遍历、后序遍历
通过算法演示分析各种遍历的过程,给出递归算法及其分析
3.由树的层次特征得到层次遍历
4.给出二叉树的建立算法
5.以案例形式给出二叉树遍历的应用实例(教材内容可选讲)
作业布置
习题6
一.1,2,7~10二.2,4,5,6三.1,2,3,4四五.
教学后记
教案(实验课)
第17次课2学时
章节
第六章树
6.2二叉树
重点
难点
重点:
二叉树的遍历
难点:
二叉树的遍历;二叉树遍历的应用
要求掌握知识点和分析方法
●熟练掌握二叉树的遍历操作
●掌握二叉树遍历的应用
教学内容
上机完成案例。
要求:
1.设计一个程序,利用递归算法完成二叉树的建立、前序遍历、中序遍历、后序遍历和层次遍历
2.仿照案例6-3,6-4,6-5,编写程序实现习题6五大题中的3个小题
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第18次课2学时
章节
第六章树
6.3树、森林与二叉树
6.4线索二叉树
6.6案例实现——团委人事管理系统
讲授主要内容
树与二叉树的转换;森林与二叉树的转换;树与森林的遍历
线索二叉树的定义
重点
难点
重点:
1.树、森林与二叉树之间的转换
2.树与森林的遍历
3.线索二叉树的定义
难点:
1.树、森林与二叉树之间的转换
2.线索二叉树的定义
要求掌握知识点和分析方法
●掌握树、森林与二叉树之间的转换
●熟练掌握树与森林的遍历
●理解线索二叉树的定义
教学设计
38.从应用的角度分析树、森林和二叉树转换的意义
39.分析树、森林和二叉树转换中的几个特点:
树的孩子兄弟表示法与二叉树的二叉链表表示法的相似之处,引入转换方法。
利用算法动态演示,形象展示转换方法。
40.从树的组成得到树的遍历方法:
前序和后序,层次遍历
41.分析森林与树的关系,得到森林的遍历方法
42.由“保存二叉树的遍历序列的方法”,分析二叉链表的构造,引入线索链表
43.给出线索链表的存储思想,说明结点结构,根据实例画出一棵二叉树的线索链表
44.根据教学情况,选讲线索链表的操作
作业布置
习题6
一.8,9三.3,4,9,10四.5,6,7,8
教学后记
教案(理论课)
第19次课2学时
章节
第六章树
6.5哈夫曼树及其应用
讲授主要内容
哈夫曼树的基本概念;哈夫曼树的构造方法;哈夫曼编码
重点
难点
重点:
1.哈夫曼树的基本概念
2.哈夫曼树的构造方法
3.哈夫曼编码
难点:
1.哈夫曼树的构造方法
2.哈夫曼编码
要求掌握知识点和分析方法
●理解哈夫曼树的定义及基本概念
●熟练掌握哈夫曼树的构造方法
●理解哈夫曼树的构造算法
●理解哈夫曼编码
●了解哈夫曼编码和译码算法
教学设计
23.以几棵不同的二叉树为例,讲授哈夫曼树的定义及基本概念,重点分析其权值、WPL
24.利用算法动态演示,分析、展示哈夫曼树的构造方法
25.给出哈夫曼树的构造算法
26.介绍等长和不等长编码,引出前缀编码
27.利用哈夫曼树构造不等长编码的方法,通过案例讲解编码、译码的过程
28.根据教学情况,选讲编码和译码算法
作业布置
习题6
一.10,11,12二.14三.8四11,12
教学后记
教案(实验课)
第20次课2学时
章节
第六章树
6.5哈夫曼树及其应
重点
难点
重点:
1.哈夫曼树的基本概念
2.哈夫曼树的构造方法
3.哈夫曼编码
难点:
1.哈夫曼树的构造方法
2.哈夫曼编码
要求掌握知识点和分析方法
●理解哈夫曼树的定义及基本概念
●熟练掌握哈夫曼树的构造方法
●理解哈夫曼树的构造算法
●理解哈夫曼编码
●了解哈夫曼编码和译码算法
教学内容
一、分析本章案例,由学生课后完成
二、上机完成案例。
要求:
利用所学的哈夫曼树知识,构建一棵哈夫曼树,并实现编码功能。
作业布置
完成本次课程实验报告
教学后记
教案(理论课)
第21次课2学时
章节
第七章图
7.1图的逻辑结构
7.2图的存储结构
讲授主要内容
图的定义和基本术语;图的抽象数据类型定义;
图的存储结构:
邻接矩阵
重点
难点
重点:
1.图的定义和基本术语
2.邻接矩阵
3.邻接表
难点:
1.图的定义和基本术语
2.邻接矩阵
要求掌握知识点和分析方法
●熟练掌握图的定义和基本术语
●理解图的抽象数据类型
●掌握图的邻接矩阵
教学设计
29.由案例引入图的教学。
30.给出图的定义,结合实例分析讲授图的基本术语
31.给出图的抽象数据类型
32.由存储图要解决的关键问题引出图的各种存储结构
33.给出图的邻接矩阵存储结构,分析有向图、无向图、有向网、无向网的邻接矩阵表示方法。
分析图的邻接矩阵存储结构的特点,采用算法动态演示,以有向图为例给出邻接矩阵建立算法
作业布置
习题7
一.1,2,3,4,7二.1,2,3,5,6,7,9,10三.2,4
教学后记
教案(理论课)
第22次课2学时
章节
第七章图
7.2图的存储结构
讲授主要内容
图的存储结构:
邻接表、十字链表、邻接多重表、边集数组
重点
难点
重点:
1.邻接表
2.边集数组
难点:
1.邻接表
要求掌握知识点和分析方法
●掌握图的邻接表
●理解图的十字链表、邻接多重表、边集数组
教学设计
1.给出图的邻接表存储结构,分析有向图、无向图、有向网、无向网的邻接矩阵表示方法。
分析图的邻接表存储结构的特点,采用算法动态演示,以有向图为例给出邻接表建立算法
2.介绍图的十字链表、邻接多重表、边集数组
3.讲授图的各种存储结构的比较
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 教学 教案