《数据结构》教案664282.docx
《《数据结构》教案664282.docx》由会员分享,可在线阅读,更多相关《《数据结构》教案664282.docx(53页珍藏版)》请在冰豆网上搜索。
《数据结构》教案664282
教学单元〔章节〕:
第一章:
绪论
1.1数据结构概念
教学目的:
理解学习数据结构的重要意义
掌握数据结构的根本概念
知识要点:
数据结构、逻辑结构、物理结构、算法
4种数据的存储结构、程序与数据结构
技能要点:
数据结构、4种根本的数据结构、
4种数据的存储结构
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P11;1、2
课后分析与小结:
本节课的重点:
数据结构有关概念和术语
难点:
学习数据结构的意义
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第一章:
绪论
数据结构概念
为什么要学习数据结构
1.计算机处理问题的分类
〔1〕数值计算问题
〔2〕非数值性问题
2.非数值问题求解
算法+数据结构=程序
数据结构:
是指数据的逻辑结构和存储结构
算法:
是对数据运算的描述
有关概念和术语
数据
数据元素
数据项
数据结构:
集合、线性、树型、图状
数据结构:
包括物理结构、逻辑结构
数据的四种根本存储方法
〔1〕顺序存储方法
〔2〕链接存储方法
〔3〕索引存储方法
〔4〕散列存储方法
教师授课教案
教学单元〔章节〕:
第一章:
绪论
1.2算法描述
1.3算法分析
教学目的:
理解算法的定义、特性、描述方法
掌握简单的时间复杂度的估计
知识要点:
算法的特性、描述方法、算法编制的质量要求、
数据结构的根本操作、时间复杂度、空间复杂度、
技能要点:
描述算法、分析简单算法的时间复杂度
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P11;3、4
课后分析与小结:
本节课的重点:
算法的特点和描述,算法分析
难点:
算法时间复杂度的估计
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第一章:
绪论
算法特性
(1)有穷性
(2)确定性(3)可行性(4)输入(5)输出
好的算法的特点
(1)正确
(2)可读(3)健壮(4)高效
数据结构的根本操作:
〔1〕查找〔2〕读取〔3〕插入〔4〕删除〔5〕修改
算法描述
算法描述的种类:
〔1〕框图/流程图算法〔2〕非形式算法
〔3〕伪语言算法〔4〕高级语言算法
1.3算法分析
时间复杂度:
解决某问题所花费的时间大小,即程序运行从开始到结束所需要的时间,记为T(n)
空间复杂度:
解决某问题的程序完全运行时所占用的存储空间大小,记为S(n)
【例】算法MatrixMultidy的时间复杂度T(n)如(1.1)式所示,当n趋向无穷大时,显然有
教师授课教案
教学单元〔章节〕:
C语言第七章:
数组
7.1一维数组的定义和引用
7.2二维数组的定义和引用
7.3字符数组
教学目的:
理解一维数组、二维数组、字符数组的定义
掌握一维数组、二维数组、字符数组的引用和初始化方法
掌握一维数组、二维数组、字符数组的简单应用程序
知识要点:
一维数组、二维数组、字符数组的定义、引用、初始化
一维数组、二维数组、字符数组相关的简单程序
技能要点:
用数组来处理相关问题的程序
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
课后分析与小结:
本节重点:
数组的定义、引用、初始化
本节难点:
用数组求解简单的问题
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第七章数组
7.1一维数组的定义和引用
一维数组的定义
一维数组的引用
一维数组的初始化
一维数组程序举例
7.2二维数组的定义和引用
二维数组的定义
二维数组的引用
二维数组的初始化
二维数组程序举例
7.3字符数组
字符数组的定义
字符数组的初始化
字符数组的引用
字符数组的输入输出
教师授课教案
教学单元〔章节〕:
C语言第十章:
指针
10.1地址和指针的概念
10.2变量的指针和指针变量
教学目的:
理解地址和指针的概念
掌握指针变量的定义和引用
知识要点:
地址、指针、指针变量的定义和引用、
指针变量作为函数参数
技能要点:
指针变量的定义和引用
指针变量作为函数参数
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P278;10.1
课后分析与小结:
本节重点:
指针的含义、指针变量的引用
本节难点:
指针变量的引用、指针变量作为函数参数
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
C语言第十章:
指针
10.1地址和指针的概念
1.地址的概念
2.指针的概念
10.2变量的指针和指针变量
定义一个指针变量
1.定义指针变量的一般形式:
基类型*指针变量名
指针变量的引用
1.&——取址运算符。
2.*——指针运算符,
指针变量作为函数参数
(1)使一个指针变量指向另一个变量
(2)通过指针变量访问整型变量
教师授课教案
教学单元〔章节〕:
C语言第十章:
指针
指向数组元素的指针
通过指针引用数组元素
字符串的表现形式
指针运算小结
教学目的:
掌握通过指针引用数组元素
理解字符串的表现形式
掌握指针的相关运算
知识要点:
数组与指针、字符串与指针、指针运算
技能要点:
通过指针引用数组元素、字符串的表现形式
指针的各种运算
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P279;10.6
P279;10.9
课后分析与小结:
本节重点:
指针运算、通过指针引用数组元素和字符串
本节难点:
通过指针引用数组元素、字符串
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
10.3数组与指针
指向数组元素的指针
定义一个指向数组元素的指针变量
通过指针引用数组元素
数组元素的引用可以用
1.下标法:
a[i]
2.指针法:
*(a+i)或*(p+i)
10.4字符串与指针
字符串的表现形式
1.用字符数组存放一个字符串
2.用字符指针指向一个字符串
3.字符串常量和字符指针的初始化
指针运算小结
有关指针的数据类型的小结
指针运算小结
教师授课教案
教学单元〔章节〕:
C语言第十一章:
结构体与共用体
11.1-11.5.1结构体
处理动态链表所需的函数
11.10用typedef定义类型
教学目的:
掌握结构体变量的定义、引用和初始化
掌握处理动态链表所需的函数
掌握用typedef定义类型
知识要点:
结构体变量、结构体数组,malloc函数
calloc函数、free函数、typedef
技能要点:
结构体变量的定义、引用和初始化
用typedef定义类型
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
课后分析与小结:
本节重点:
结构体变量、处理动态链表所需的函数
本节难点:
结构体变量的引用和初始化、用typedef定义类型
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第十一章:
结构体与共用体
11.1概述
1.先定义结构体类型,再用类型标识去定义变量
2.定义类型的同时定义变量3.直接定义结构体类型变量
11.3结构体变量的引用
1.结构体变量各成员的引用
引用形式:
结构体变量名.成员名
2.结构体变量各成员的输入、输出
11.4结构体变量的初始化
11.5结构体数组
4.结构体数组的引用
11.6指针与结构体
1.指向结构体变量的指针
2.指向结构体变量的指针与结构体变量的等价关系
11.7用指针处理链表
11.7.3处理动态链表所需的函数
内存分配函数原型:
void*malloc(unsignedsize);
内存分配函数原型:
void*calloc(unsignedsize);
内存释放函数原形:
voidfree(void*p);
11.10用typedef定义类型
1、使用的一般形式:
typedef原类型名新类型名;
2.用typedef定义类型的方法〔举例〕
①先按定义数组变量形式书写:
intn[100];
②将变量名换成新类型名:
int NUM[100];
③在最前面加上typedef:
typedefintNUM[100];
④用新类型名来定义变量:
NUM n;
3.用typedef定义类型的说明:
(1)用typedef可以声明各种类型名,但不能用来定义变量。
(2)用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。
(3)使用typedef有利于程序的通用与移植。
教师授课教案
教学单元〔章节〕:
第二章:
线性表
2.1线性表的逻辑结构
2.2线性表的顺序存储及操作实现
教学目的:
理解顺序表的定义、特点及其主要操作
掌握插入与删除算法中数据元素的平均移动次数
知识要点:
线性表的定义、特点、根本操作
顺序表的定义、特点和存储
顺序表的初始化、插入、删除、查找操作,应用举例
技能要点:
线性表的逻辑结构及根本操作
线性表的顺序存储结构及其根本操作实现
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P37;1
P38;6
课后分析与小结:
本节重点:
线性表的定义、特点和顺序表的根本操作
本节难点:
顺序表的插入和删除算法及其时间复杂度
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
2.1线性表的逻辑结构
线性表的实际例子
线性表的定义
2.1.2线性表的根本操作
1.初始化:
Init_List(L)
2.置空:
Setnull_List(L)
3.求长度:
Length_List(L)
4.取表元:
Get_List(L,i)
5.查找:
Locate_List(L,x)
6.插入:
Insert_List(L,x)
7.删除:
Delete_List(L,i)
线性表的顺序存储结构
顺序表的根本算法实现
1.初始化顺序表L
2.插入
3.删除
4.按值查找
教师授课教案
教学单元〔章节〕:
第二章:
线性表
.1单链表
.2单链表上根本运算的实现
教学目的:
掌握单链表的定义、特点及存储结构
掌握单链表的查找、插入与删除算法
理解带首结点的单链表的优点
知识要点:
单链表的定义、特点、标识、结点结构和存储结构
单链表的建立、求表长、查找、插入和删除算法
技能要点:
单链表的结点结构和存储结构
单链表的查找、插入与删除算法
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P38;8
课后分析与小结:
本节重点:
单链表的定义、特点和存储结构根本操作
本节难点:
单链表的查找、插入和删除算法
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
2.3线性表的链式存储结构
单链表
单链表上的根本运算的实现
〔1〕头部插入法建立
〔2〕尾部插入法建立
〔1〕带头结点的单链表
〔2〕不带头结点的单链表
〔1〕按序号查找
〔2〕按值查找
〔1〕后插节点
〔2〕前插节点
〔3〕插入运算
5.删除操作
(1)删除节点
(2)删除运算
教师授课教案
教学单元〔章节〕:
第二章:
线性表
.3循环链表
.4双向链表
教学目的:
掌握单链表的定义、特点及存储结构
掌握单链表的查找、插入与删除算法
理解带首结点的单链表的优点
知识要点:
循环链表和双向链表的定义、特点、标识、结点结构
两个循环链表的连接、双向链表中结点的插入和删除
顺序表和链表的比拟
技能要点:
两个循环链表的连接算法
双向链表中结点的插入和删除
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P38;7、9
课后分析与小结:
本节课的重点:
循环链表和双向链表的特点和根本操作
难点:
循环链表连接操作、双向链表的插入和删除
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
2.3.3循环链表
一.循环链表的定义
二.循环链表示意图
(1)带头结点的单循环链表
(2)仅设尾指针的单循环链表
三.循环链表的特点
四.循环链表的说明
双向循环链表
一.双向链表的概念
二.双链表示意图
三.双链表的类型定义
四.双向链表的操作
五.顺序表和链表的比拟
教师授课教案
教学单元〔章节〕:
第三章:
栈和队列
3.1栈
教学目的:
掌握栈的定义、特点和存储结构
掌握顺序栈和链栈的根本运算
理解栈与递归的关系
知识要点:
栈的定义、特点、根本运算,顺序栈和链栈的主要操作
上溢、下溢,栈空与栈满的条件,栈与递归问题
技能要点:
顺序栈和链栈的置空、判栈空、入栈、出栈操作
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P63;1、3、4
课后分析与小结:
本节课的重点:
顺序栈和链栈的根本操作
难点:
栈与递归问题
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第三章:
栈和队列
3.1栈
栈的定义和根本运算
栈:
是限制仅在表尾进行插入和删除的线性表。
〔1〕初始化栈:
构在一个空栈
〔2〕置空栈:
将S置成空栈
〔3〕入栈:
在栈顶插入一个新元素X
〔4〕出栈:
删除(弹出)栈S的顶部元素
〔5〕取栈顶):
取栈S的顶部元素
〔6〕判断空栈Empty_Stack(S):
空栈返回1
栈的存储实现和运算实现
1〕顺序栈的定义
2〕顺序栈根本运算
⑴置空栈
⑵判空栈
⑶入栈
⑷出栈
栈的存储实现和运算实现
1〕链栈的定义
2〕链栈根本运算
⑴置空栈
⑵判空栈
⑶入栈
⑷出栈
栈与递归的实现
〔1〕递归定义的数学函数
〔2〕递归数据结构的处理
〔3〕递归求解方法
〔1〕应用递归算法的前提
〔2〕Hanoi塔问题的递归函数
〔3〕Fibonacci数列的递归算法
教师授课教案
教学单元〔章节〕:
第三章:
栈和队列
3.2栈的应用举例
3.3队列
3.4队列应用举例
教学目的:
掌握队列的定义、特点和存储结构
掌握循环队列和链队列的根本运算
理解循环队列的意义和队列的应用
知识要点:
队列的定义、特点、存储结构、根本运算
循环队列产生的原因,循环队列和链队列的主要操作
假溢出,循环队列队空与队满的条件
技能要点:
循环队列队空与队满的条件,
循环队列和链队列的入队、出队、判队空操作
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P63;2、5、9
课后分析与小结:
本节课的重点:
循环队列和链队列的根本操作
难点:
栈的应用、循环队列
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第三章:
栈和队列
3.2栈的应用举例
3.3队列
队列的定义和根本运算
2.队列结构的根本操作
1.Init_Queue(Q)将Q置为一个空队列
2.In_Queue(Q,x)插入元素x为队Q的新队尾元素
3.Out_Queue(Q,x)删除Q的队头元素,并返回其值
4.Front_Queue(Q,x)返回Q的队头元素
5.Empty_Queue(Q)判队空
队列的存储和运算实现
1.顺序队列:
定义、特点和存储结构
2.循环队列:
定义、存储结构和根本操作
3.链队列
1〕定义、特点和存储结构
2〕根本操作
3.4队列应用举例
教师授课教案
教学单元〔章节〕:
第四章:
串和数组
4.1串
教学目的:
掌握串的定义、特点、相关术语和根本运算
了解串的存储结构及其根本运算实现
知识要点:
串的定义、特点、相关术语和根本运算
串的顺序存储结构和堆分配存储结构
技能要点:
串的根本运算
定长串连接、求子串和串比拟操作
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P78;2、3
课后分析与小结:
本节重点:
串的定义、存储结构和根本运算
本节难点:
串连接、求子串和串比拟算法
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第四章:
串和数组
4.1串
串的根本概念
串的根本运算
〔1〕求串长
〔2〕串赋值
〔3〕串连接
〔4〕求子串
〔5〕串比拟
〔6〕串定位
(7)插入
(8)删除
(9)串替换
串的存储结构
1.串的定长顺序存储结构
2.堆分配存储结构
3.定长顺序串根本运算的实现
〔1〕串连接
〔2〕子串
〔3〕串比拟
教师授课教案
教学单元〔章节〕:
第四章:
串和数组
4.2数组
教学目的:
了解数组的逻辑存储结构和内存映像
了解稀疏矩阵的定义及其数组实现
知识要点:
数组与线性表、数组的逻辑存储结构和内存映像
稀疏矩阵的定义、压缩存储方法、转置
技能要点:
数组的内存映像、数组元素地址的计算
稀疏矩阵的存储、转置
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P78;5、6
课后分析与小结:
本节重点:
数组的逻辑结构和物理结构、稀疏矩阵
本节难点:
稀疏矩阵的压缩方法
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第四章:
串和数组
4.2数组
数组的逻辑结构
1〕1维数组
2〕2维数组
数组的内存映像
1〕以行为主
2〕以列为主
1〕1维数组物理地址计算函数表达式
2〕2维数组物理地址计算函数表达式
稀疏矩阵
教师授课教案
教学单元〔章节〕:
第五章:
树和二叉树
5.1树的概念和根本操作
二叉树的根本概念
二叉树的主要性质
教学目的:
掌握树的定义、特点和相关术语
理解树的根本操作
掌握二叉树的定义、相关概念和主要性质
知识要点:
树的定义、特点、相关术语和根本操作
二叉树、完全二叉树、满二叉树的定义
完全二叉树、满二叉树的性质
技能要点:
树的相关术语、树的遍历
二叉树、完全二叉树、满二叉树
二叉树的结点个数、完全二叉树的深度
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P107;1、2、8、9
课后分析与小结:
本节重点:
树和二叉树的相关概念、二叉树的性质
本节难点:
二叉树的主要性质
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第五章:
树和二叉树
5.1树的概念和根本操作
树的定义和相关术语
树的根本操作
(1)Initiate(t)初始化一棵空树t。
(2)Root(x)求结点x所在树的根结点。
(3)Parent(t,x)求树t中结点x的双亲结点。
(4)Child(t,x,i)求树t中结点x的第i个孩子结点。
(5)RightSibling(t,x)求树t中结点x的第一个右边兄弟结点。
(6)Insert(t,x,i,s)把以s为根结点的树插入到树t中作为结点x的第i棵子树。
(7)Delete(t,x,i)在树t中删除结点x的第i棵子树。
(8)Traverse(t)是树的遍历操作,访问每个结点。
5.2二叉树
二叉树的根本概念
1.二叉树
2.二叉树的相关概念:
满二叉树、完全二叉树
二叉树的主要性质
性质1:
层数与节点的关系
性质2:
深度与节点的关系
性质3:
非空二叉树的度为2的结点与叶子节点的关系
性质4:
完全二叉树的深度与节点的关系
性质5:
完全二叉树的相关性质
教师授课教案
教学单元〔章节〕:
第五章:
树和二叉树
二叉树的根本操作与存储实现
二叉树的遍历
教学目的:
掌握二叉树的2种存储结构
理解二叉树的根本操作
掌握二叉树的遍历方法
知识要点:
二叉树的顺序存储、二叉链表存储、三叉链表存储
二叉树的根本操作
先序遍历、中序遍历、后序遍历、层次遍历
技能要点:
二叉树的顺序存储、二叉树链式存储的存储结构
先序遍历、中序遍历、后序遍历、层次遍历二叉树的过程
教学方法:
讲授+演示
教具及教学手段:
投影
作业布置情况:
P107;3、4、5、6
课后分析与小结:
本节重点:
二叉树的存储结构和遍历方法
本节难点:
先序、中序、后序遍历二叉树
审批:
教研室主任〔签字〕年月日
抽查:
系部主任〔签字〕年月日
教学内容及过程
板书或旁注
第五章:
树和二叉树
二叉树的根本操作与存储实现
1〕二叉链表存储
2〕三叉链表存储
(1)Initiate〔bt〕
(2)Create〔x,lbt,rbt〕
(3)InsertL〔bt,x,parent〕
(4)DeleteL〔bt,parent〕
(5)InsertR〔bt,x,parent〕
(6)DeleteR〔bt,parent〕
(7)serch〔bt,x〕
(8)Traverse〔bt〕
二叉树的遍历
教师授课教案
教学单元〔章节〕:
第五章:
树和二叉树
5.3树和森林
教学目的:
理解树的3种存储结构
掌握树、森林与二叉树的转换方法
掌握树和森林的遍历方法
知识要点:
树的双亲表示法、孩子链表表示法、孩子兄弟表示法
树和森林转换为二叉树、二叉树转换为树和森林
树的先根遍历、后根遍历,森林的先序遍历、后序遍历
技能要点: