《数据结构》教案.docx

上传人:b****5 文档编号:3544647 上传时间:2022-11-23 格式:DOCX 页数:54 大小:41.23KB
下载 相关 举报
《数据结构》教案.docx_第1页
第1页 / 共54页
《数据结构》教案.docx_第2页
第2页 / 共54页
《数据结构》教案.docx_第3页
第3页 / 共54页
《数据结构》教案.docx_第4页
第4页 / 共54页
《数据结构》教案.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

《数据结构》教案.docx

《《数据结构》教案.docx》由会员分享,可在线阅读,更多相关《《数据结构》教案.docx(54页珍藏版)》请在冰豆网上搜索。

《数据结构》教案.docx

《数据结构》教案

教学单元(章节):

第一章:

绪论

1.1数据结构概念

教学目的:

理解学习数据结构的重要意义

掌握数据结构的基本概念

知识要点:

数据结构、逻辑结构、物理结构、算法

4种数据的存储结构、程序与数据结构

技能要点:

数据结构、4种基本的数据结构、

4种数据的存储结构

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P11;1、2

课后分析与小结:

本节课的重点:

数据结构有关概念和术语

难点:

学习数据结构的意义

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第一章:

绪论

1.1数据结构概念

1.1.1为什么要学习数据结构

1.计算机处理问题的分类

(1)数值计算问题

(2)非数值性问题

2.非数值问题求解

   算法+数据结构=程序

     数据结构:

是指数据的逻辑结构和存储结构

     算法:

是对数据运算的描述

1.1.2有关概念和术语

数据

数据元素

数据项

数据结构:

集合、线性、树型、图状

数据结构:

包括物理结构、逻辑结构

数据的四种基本存储方法

(1)顺序存储方法

(2)链接存储方法

(3)索引存储方法

(4)散列存储方法

 

教师授课教案

教学单元(章节):

第一章:

绪论

1.2算法描述

1.3算法分析

教学目的:

理解算法的定义、特性、描述方法

掌握简单的时间复杂度的估计

知识要点:

算法的特性、描述方法、算法编制的质量要求、

数据结构的基本操作、时间复杂度、空间复杂度、

技能要点:

描述算法、分析简单算法的时间复杂度

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P11;3、4

课后分析与小结:

本节课的重点:

算法的特点和描述,算法分析

难点:

算法时间复杂度的估计

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第一章:

绪论

1.2算法描述

1.2.1算法特性

(1)有穷性

(2)确定性(3)可行性(4)输入(5)输出

好的算法的特点

(1)正确

(2)可读(3)健壮(4)高效

数据结构的基本操作:

(1)查找

(2)读取(3)插入(4)删除(5)修改

1.2.2算法描述

算法描述的种类:

(1)框图/流程图算法

(2)非形式算法

(3)伪语言算法(4)高级语言算法

1.3算法分析

时间复杂度:

解决某问题所花费的时间大小,即程序运行从开始到结束所需要的时间,记为T(n)

空间复杂度:

解决某问题的程序完全运行时所占用的存储空间大小,记为S(n)

【例】算法MatrixMultidy的时间复杂度T(n)如(1.1)式所示,当n趋向无穷大时,显然有

      

 

教师授课教案

教学单元(章节):

C语言第七章:

数组

7.1一维数组的定义和引用

7.2二维数组的定义和引用

7.3字符数组

教学目的:

理解一维数组、二维数组、字符数组的定义

掌握一维数组、二维数组、字符数组的引用和初始化方法

掌握一维数组、二维数组、字符数组的简单应用程序

知识要点:

一维数组、二维数组、字符数组的定义、引用、初始化

一维数组、二维数组、字符数组相关的简单程序

技能要点:

用数组来处理相关问题的程序

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P152;7.1P152;7.3

P153;7.11P153;7.15

课后分析与小结:

本节重点:

数组的定义、引用、初始化

本节难点:

用数组求解简单的问题

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第七章数组

7.1一维数组的定义和引用

7.1.1一维数组的定义

7.1.2一维数组的引用

7.1.3一维数组的初始化

7.1.4一维数组程序举例

7.2二维数组的定义和引用

7.2.1二维数组的定义

7.2.2二维数组的引用

7.2.3二维数组的初始化

7.2.4二维数组程序举例

7.3字符数组

7.3.1字符数组的定义

7.3.2字符数组的初始化

7.3.3字符数组的引用

7.3.5字符数组的输入输出

 

教师授课教案

教学单元(章节):

C语言第十章:

指针

10.1地址和指针的概念

10.2变量的指针和指针变量

教学目的:

理解地址和指针的概念

掌握指针变量的定义和引用

知识要点:

地址、指针、指针变量的定义和引用、

指针变量作为函数参数

技能要点:

指针变量的定义和引用

指针变量作为函数参数

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P278;10.1

P278;10.2

课后分析与小结:

本节重点:

指针的含义、指针变量的引用

本节难点:

指针变量的引用、指针变量作为函数参数

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

C语言第十章:

指针

10.1地址和指针的概念

1.地址的概念

2.指针的概念

10.2变量的指针和指针变量

10.2.1定义一个指针变量

1.定义指针变量的一般形式:

基类型*指针变量名

2.定义指针变量的注意事项

10.2.2指针变量的引用

1.&——取址运算符。

2.*——指针运算符,

10.2.3指针变量作为函数参数

(1)使一个指针变量指向另一个变量

(2)通过指针变量访问整型变量

 

教师授课教案

教学单元(章节):

C语言第十章:

指针

10.3.1指向数组元素的指针

10.3.2通过指针引用数组元素

10.4.1字符串的表现形式

10.8指针运算小结

教学目的:

掌握通过指针引用数组元素

理解字符串的表现形式

掌握指针的相关运算

知识要点:

数组与指针、字符串与指针、指针运算

技能要点:

通过指针引用数组元素、字符串的表现形式

指针的各种运算

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P279;10.6

P279;10.9

 

课后分析与小结:

本节重点:

指针运算、通过指针引用数组元素和字符串

本节难点:

通过指针引用数组元素、字符串

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

10.3数组与指针

10.3.1指向数组元素的指针

定义一个指向数组元素的指针变量

10.3.2通过指针引用数组元素

数组元素的引用可以用

1.下标法:

a[i]

2.指针法:

*(a+i)或*(p+i)

10.4字符串与指针

10.4.1字符串的表现形式

1.用字符数组存放一个字符串

2.用字符指针指向一个字符串

3.字符串常量和字符指针的初始化

10.8指针运算小结

10.8.1有关指针的数据类型的小结

10.8.2指针运算小结

1.指针变量的加减

2.指针变量赋值

3.指针变量的比较

 

教师授课教案

教学单元(章节):

C语言第十一章:

结构体与共用体

11.1-11.5.1结构体

11.7.3处理动态链表所需的函数

11.10用typedef定义类型

教学目的:

掌握结构体变量的定义、引用和初始化

掌握处理动态链表所需的函数

掌握用typedef定义类型

知识要点:

结构体变量、结构体数组,malloc函数

calloc函数、free函数、typedef

技能要点:

结构体变量的定义、引用和初始化

用typedef定义类型

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P318;11.1

P318;11.5

课后分析与小结:

本节重点:

结构体变量、处理动态链表所需的函数

本节难点:

结构体变量的引用和初始化、用typedef定义类型

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第十一章:

结构体与共用体

11.1概述

11.2定义结构体类型变量的方法

1.先定义结构体类型,再用类型标识去定义变量

2.定义类型的同时定义变量3.直接定义结构体类型变量

11.3结构体变量的引用

1.结构体变量各成员的引用

引用形式:

结构体变量名.成员名

2.结构体变量各成员的输入、输出

11.4结构体变量的初始化

11.5结构体数组

1.结构体数组的定义2.结构体数组的初始化

3.结构体数组stu的存储结构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.0线性表的实际例子

2.1.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)

2.2线性表的顺序存储结构

2.2.1线性表的顺序存储结构

1.顺序表的定义和特点

2.顺序表的存储和类型定义

2.2.2顺序表的基本算法实现

1.初始化顺序表L

2.插入

3.删除

4.按值查找

 

教师授课教案

教学单元(章节):

第二章:

线性表

2.3.1单链表

2.3.2单链表上基本运算的实现

教学目的:

掌握单链表的定义、特点及存储结构

掌握单链表的查找、插入与删除算法

理解带首结点的单链表的优点

知识要点:

单链表的定义、特点、标识、结点结构和存储结构

单链表的建立、求表长、查找、插入和删除算法

技能要点:

单链表的结点结构和存储结构

单链表的查找、插入与删除算法

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P38;8

课后分析与小结:

本节重点:

单链表的定义、特点和存储结构基本操作

本节难点:

单链表的查找、插入和删除算法

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

2.3线性表的链式存储结构

2.3.1单链表

1.单链表的定义和特点

2.单链表的存储结构和类型定义

2.3.2单链表上的基本运算的实现

1.建立单链表

(1)头部插入法建立

(2)尾部插入法建立

2.求表长

(1)带头结点的单链表

(2)不带头结点的单链表

3.查找操作

(1)按序号查找

(2)按值查找

4.插入操作

(1)后插节点

(2)前插节点

(3)插入运算

5.删除操作

(1)删除节点

(2)删除运算

 

教师授课教案

教学单元(章节):

第二章:

线性表

2.3.3循环链表

2.3.4双向链表

教学目的:

掌握单链表的定义、特点及存储结构

掌握单链表的查找、插入与删除算法

理解带首结点的单链表的优点

知识要点:

循环链表和双向链表的定义、特点、标识、结点结构

两个循环链表的连接、双向链表中结点的插入和删除

顺序表和链表的比较

技能要点:

两个循环链表的连接算法

双向链表中结点的插入和删除

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P38;7、9

课后分析与小结:

本节课的重点:

循环链表和双向链表的特点和基本操作

难点:

循环链表连接操作、双向链表的插入和删除

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

2.3.3循环链表

一.循环链表的定义

二.循环链表示意图

(1)带头结点的单循环链表

(2)仅设尾指针的单循环链表

三.循环链表的特点

四.循环链表的说明

2.3.4双向循环链表

一.双向链表的概念

二.双链表示意图

三.双链表的类型定义

四.双向链表的操作

1.双向链表中结点的前插

2.双向链表中结点的删除

五.顺序表和链表的比较

 

教师授课教案

教学单元(章节):

第三章:

栈和队列

3.1栈

教学目的:

掌握栈的定义、特点和存储结构

掌握顺序栈和链栈的基本运算

理解栈与递归的关系

知识要点:

栈的定义、特点、基本运算,顺序栈和链栈的主要操作

上溢、下溢,栈空与栈满的条件,栈与递归问题

技能要点:

顺序栈和链栈的置空、判栈空、入栈、出栈操作

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P63;1、3、4

课后分析与小结:

本节课的重点:

顺序栈和链栈的基本操作

难点:

栈与递归问题

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第三章:

栈和队列

3.1栈

3.1.1栈的定义和基本运算

1.栈的定义

栈:

是限制仅在表尾进行插入和删除的线性表。

2.基本运算

(1)初始化栈:

构在一个空栈

(2)置空栈:

将S置成空栈

(3)入栈:

在栈顶插入一个新元素X

(4)出栈:

删除(弹出)栈S的顶部元素

(5)取栈顶):

取栈S的顶部元素

(6)判断空栈Empty_Stack(S):

空栈返回1

3.1.2栈的存储实现和运算实现

1.顺序栈

1)顺序栈的定义

2)顺序栈基本运算

⑴置空栈

⑵判空栈

⑶入栈

⑷出栈

3.1.2栈的存储实现和运算实现

2.链栈

1)链栈的定义

2)链栈基本运算

⑴置空栈

⑵判空栈

⑶入栈

⑷出栈

3.1.3栈与递归的实现

1.具有递归特性的问题

(1)递归定义的数学函数

(2)递归数据结构的处理

(3)递归求解方法

2.递归算法的设计方法与递归过程的实现

(1)应用递归算法的前提

(2)Hanoi塔问题的递归函数

(3)Fibonacci数列的递归算法

 

教师授课教案

教学单元(章节):

第三章:

栈和队列

3.2栈的应用举例

3.3队列

3.4队列应用举例

教学目的:

掌握队列的定义、特点和存储结构

掌握循环队列和链队列的基本运算

理解循环队列的意义和队列的应用

知识要点:

队列的定义、特点、存储结构、基本运算

循环队列产生的原因,循环队列和链队列的主要操作

假溢出,循环队列队空与队满的条件

技能要点:

循环队列队空与队满的条件,

循环队列和链队列的入队、出队、判队空操作

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P63;2、5、9

课后分析与小结:

本节课的重点:

循环队列和链队列的基本操作

难点:

栈的应用、循环队列

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第三章:

栈和队列

3.2栈的应用举例

1.数制转换

2.表达式求值

3.3队列

3.3.1队列的定义和基本运算

1.队列的定义和特点

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)判队空

3.3.2队列的存储和运算实现

1.顺序队列:

定义、特点和存储结构

2.循环队列:

定义、存储结构和基本操作

3.链队列

1)定义、特点和存储结构

2)基本操作

3.4队列应用举例

 

教师授课教案

教学单元(章节):

第四章:

串和数组

4.1串

教学目的:

掌握串的定义、特点、相关术语和基本运算

了解串的存储结构及其基本运算实现

知识要点:

串的定义、特点、相关术语和基本运算

串的顺序存储结构和堆分配存储结构

技能要点:

串的基本运算

定长串连接、求子串和串比较操作

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P78;2、3

课后分析与小结:

本节重点:

串的定义、存储结构和基本运算

本节难点:

串连接、求子串和串比较算法

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第四章:

串和数组

4.1串

4.1.1串的基本概念

1.串的定义

2.术语

4.1.2串的基本运算

(1)求串长

(2)串赋值

(3)串连接

(4)求子串

(5)串比较

(6)串定位

(7)插入

(8)删除

(9)串替换

4.1.2串的存储结构

1.串的定长顺序存储结构

2.堆分配存储结构

3.定长顺序串基本运算的实现

(1)串连接

(2)子串

(3)串比较

 

教师授课教案

教学单元(章节):

第四章:

串和数组

4.2数组

教学目的:

了解数组的逻辑存储结构和内存映像

了解稀疏矩阵的定义及其数组实现

知识要点:

数组与线性表、数组的逻辑存储结构和内存映像

稀疏矩阵的定义、压缩存储方法、转置

技能要点:

数组的内存映像、数组元素地址的计算

稀疏矩阵的存储、转置

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P78;5、6

课后分析与小结:

本节重点:

数组的逻辑结构和物理结构、稀疏矩阵

本节难点:

稀疏矩阵的压缩方法

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第四章:

串和数组

4.2数组

4.2.1数组的逻辑结构

1)1维数组

2)2维数组

4.2.2数组的内存映像

1.存储方式

1)以行为主

2)以列为主

2.数组物理地址的计算

1)1维数组物理地址计算函数表达式

2)2维数组物理地址计算函数表达式

4.2.3稀疏矩阵

1.定义

2.特殊矩阵

3.稀疏矩阵的压缩存储

 

教师授课教案

教学单元(章节):

第五章:

树和二叉树

5.1树的概念和基本操作

5.2.1二叉树的基本概念

5.2.2二叉树的主要性质

教学目的:

掌握树的定义、特点和相关术语

理解树的基本操作

掌握二叉树的定义、相关概念和主要性质

知识要点:

树的定义、特点、相关术语和基本操作

二叉树、完全二叉树、满二叉树的定义

完全二叉树、满二叉树的性质

技能要点:

树的相关术语、树的遍历

二叉树、完全二叉树、满二叉树

二叉树的结点个数、完全二叉树的深度

教学方法:

讲授+演示

教具及教学手段:

投影

作业布置情况:

P107;1、2、8、9

课后分析与小结:

本节重点:

树和二叉树的相关概念、二叉树的性质

本节难点:

二叉树的主要性质

审批:

教研室主任(签字)年月日

抽查:

系部主任(签字)年月日

教学内容及过程

板书或旁注

第五章:

树和二叉树

5.1树的概念和基本操作

5.1.1树的定义和相关术语

1.树的定义

2.相关术语

5.1.2树的基本操作

(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二叉树

5.2.1二叉树的基本概念

1.二叉树

2.二叉树的相关概念:

满二叉树、完全二叉树

5.2.2二叉树的主要性质

性质1:

层数与节点的关系

性质2:

深度与节点的关系

性质3:

非空二叉树的度为2的结点与叶子节点的关系

性质4:

完全二叉树的深度与节点的关系

性质5:

完全二叉树的相关性质

 

教师授课教案

教学单元(章节):

第五章:

树和二叉树

5.2.3二叉树的基本操作与存储实现

5.2.4二叉树的遍历

教学目

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1