《数据结构》教案99770Word文件下载.docx

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

《数据结构》教案99770Word文件下载.docx

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

《数据结构》教案99770Word文件下载.docx

(2)链接存储方法

(3)索引存储方法

(4)散列存储方法

教师授课教案

1.2算法描述

1.3算法分析

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

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

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

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

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

投影

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)高级语言算法

时间复杂度:

解决某问题所花费的时间大小,即程序运行从开始到结束所需要的时间,记为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.1一维数组的定义

7.1.2一维数组的引用

7.1.3一维数组的初始化

7.1.4一维数组程序举例

7.2.1二维数组的定义

7.2.2二维数组的引用

7.2.3二维数组的初始化

7.2.4二维数组程序举例

7.3.1字符数组的定义

7.3.2字符数组的初始化

7.3.3字符数组的引用

7.3.5字符数组的输入输出

C语言第十章:

指针

10.1地址和指针的概念

10.2变量的指针和指针变量

理解地址和指针的概念

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

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

指针变量作为函数参数

指针变量的定义和引用

指针变量作为函数参数

P278;

10.1

P278;

10.2

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

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

C语言第十章:

指针

1.地址的概念

2.指针的概念

10.2.1定义一个指针变量

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

基类型*指针变量名

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

10.2.2指针变量的引用

1.&

——取址运算符。

2.*——指针运算符,

10.2.3指针变量作为函数参数

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

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

10.3.1指向数组元素的指针

10.3.2通过指针引用数组元素

10.4.1字符串的表现形式

10.8指针运算小结

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

理解字符串的表现形式

掌握指针的相关运算

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

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

指针的各种运算

P279;

10.6

P279;

10.9

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

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

10.3数组与指针

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

数组元素的引用可以用

1.下标法:

a[i]

2.指针法:

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

10.4字符串与指针

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

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

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

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);

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线性表的链式存储结构

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双向链表

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

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

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

顺序表和链表的比较

两个循环链表的连接算法

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

7、9

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

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

2.3.3循环链表

一.循环链表的定义

二.循环链表示意图

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

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

三.循环链表的特点

四.循环链表的说明

2.3.4双向循环链表

一.双向链表的概念

二.双链表示意图

三.双链表的类型定义

四.双向链表的操作

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

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

五.顺序表和链表的比较

第三章:

栈和队列

3.1栈

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

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

理解栈与递归的关系

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

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

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

P63;

1、3、4

顺序栈和链栈的基本操作

栈与递归问题

第三章:

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)顺序栈基本运算

⑴置空栈

⑵判空栈

⑶入栈

⑷出栈

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

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

栈的应用、循环队列

1.数制转换

2.表达式求值

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)基本操作

第四章:

串和数组

4.1串

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

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

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

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

串的基本运算

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

讲授+演示

P78;

2、3

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

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

第四章:

串和数组

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

1.二叉树

2.二叉树的相关概念:

满二叉树、完全二叉树

性质1:

层数与节点的关系

性质2:

深度与节点的关系

性质3:

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

性质4:

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

性质5:

完全二叉树的相关性质

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

5.2.4二叉树的遍历

掌握二叉树的2种存储结构

理解二叉树的基本操作

掌握二叉树的遍历方法

二叉树的顺序存储、二叉链表存储、三叉链表存储

二叉树的基本操作

先序遍历、中序遍历、后序遍历、层次遍历

二叉树的顺序存储、二叉树链式存储的存储结构

先序遍历、中序遍历、后序遍历、层次遍历二叉树的过程

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

当前位置:首页 > 考试认证 > 交规考试

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

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