数据结构教案.docx
- 文档编号:9227492
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:46
- 大小:28.52KB
数据结构教案.docx
《数据结构教案.docx》由会员分享,可在线阅读,更多相关《数据结构教案.docx(46页珍藏版)》请在冰豆网上搜索。
数据结构教案
《数据结构与算法》
教案
桑慧琴
教案第一页
课程名称:
数据结构与算法
任课教师
总课序
第1次
授课
时间
第1周
桑慧琴
讲课内容
1.1—1.4
课型
(教法)
多媒体讲授
课题
数据结构相关概念、基本内容;
算法和算法分析
教具
准备
教学
目的
了解学习掌握数据结构的意义及数据结构的基本内容;
掌握数据结构及数据、数据元素等相关概念;
掌握算法描述的方法;算法时间复杂度的计算
教学
重点
数据结构相关概念及算法分析
教学
难点
与关键
算法时间复杂度的计算
教学内容及板书纲要:
课程概述
对课程性质等课程相关情况进行介绍
第1章绪论
1.1什么是数据结构
用3个引例:
1.图书书目自动检索
2.人机对奕
3.交通灯管理
引出《数据结构》的研究内容
教案第二页
1.2数据结构的基本概念和术语
1.数据
2.数据元素、数据项
3.数据对象、数据结构
4.四类基本结构:
集合、线性结构、树形结构、图形结构或网状结构。
5.数据结构一般包括三方面的内容:
逻辑结构
存储结构(物理结构)
数据的运算
算法的设计取决于选定的数据逻辑结构,而算法的实现依赖于采用的存储结构。
6.数据的两种存储结构:
顺序存储结构
链式存储结构
1.3抽象数据类型的表示与实现
类C语言
1.4算法和算法分析
1.4.1算法
算法的定义
算法具有五个重要特性:
有穷性、确定性、可行性、输入、输出
1.4.2算法设计的要求
正确性,可读性,健壮性,高效率低存储
1.4.3算法效率的度量
时间复杂度
1.4.4算法的存储空间需求
空间复杂度
白银市第一中学桑慧琴
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第2--3次
授课
时间
第1周
讲课内容
2.1—2.2
课型
(教法)
多媒体讲授
课题
线性表的逻辑结构及运算
线性表的顺序存储及其运算实现
教具
准备
教学
目的
掌握线性表的逻辑结构及运算,线性表的顺序存储结构及其运算的实现
教学
重点
线性表的逻辑结构及运算
线性表的顺序存储结构及其运算的实现
教学
难点
与关键
线性表的顺序存储结构及其运算
教学内容及板书纲要:
第2章线性表
线性结构的特点
2.1线性表的类型定义
1.线性表的定义
(a1,…,ai-1,ai,ai+1,…an)
2.定义在逻辑结构上的运算
表的初始化、求表长、取表中的结点、查找结点、插入结点和删除结点等
3.抽象数据类型线性表的定义
白银市第一中学桑慧琴
教案第二页
例1:
扩大线性表LA,将存在于线性表LB中而不在LA中的数据元素加入到线性表LA中。
算法思想:
逐一取出LB中的元素,判断是否在LA中,若不在,则插之。
例2:
线性表LA和LB是非递减的,将两表合并成新的线性表LC,且LC也是非递减的。
2.2线性表的顺序表示和实现
1、线性表的顺序表示:
指的是用一组地址连续的存储单元依次存储线性表的数据元素。
用物理位置来表示逻辑结构。
LOC(ai+1)=LOC(ai)+l
LOC(ai)=LOC(a1)+(i-1)*l
2、顺序表的特点:
随机存取
3、线性表的动态分配顺序存储结构(用一维数组)
#defineLIST_INIT_SIZE100
#defineLISTINCREAMENT10
typedefstruct{
ElemType*elem;
intlength;
intlistsize;
}SqList;
4、顺序表的运算
顺序表容易实现访问操作,可随机存取元素。
但插入和删除操作主要是移动元素。
⑴初始化操作
⑵插入操作
(3)删除操作
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第3周
讲课内容
2.3.1节
课型
(教法)
多媒体讲授
课题
单链表存储及其运算
教具
准备
教学
目的
掌握单链表存储结构及运算的实现。
教学
重点
建立单链表及实现结点的插入和删除等基本运算
教学
难点
与关键
关键:
单链表存储结构定义
难点:
基本运算的实现
教学内容及板书纲要:
2.3线性表的链式表示和实现
2.3.1线性链表
1、线性表的链式存储结构的特点
相关概念:
结点(Node)、数据域、指针域、指针、链、头指针
2、链式存储结构的优点:
插入、删除操作是不再需要移动大量的元素,但失去了顺序表的可随机存取特点。
链表的分类
单链表、循环链表和双向链表。
3.单链表:
(1)单链表概念:
链表中的每一个结点中只包含一个指针域的称为单链表或线性链表。
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第5次
授课
时间
第3周
讲课内容
2.3.2—2.3.3
课型
(教法)
多媒体讲授
课题
循环链表、双向链表、静态链表
教具
准备
教学
目的
掌握循环链表、双链表及静态链表存储结构及其运算实现
教学
重点
循环链表及双链表存储结构及其运算实现
教学
难点
与关键
循环链表、双向链表的相关运算
教学内容及板书纲要:
2.3.2循环链表
1、循环链表:
特点:
表中最后一个结点的指针域指向头结点,整个链表形成一个环。
循环链表可分为单链和多链的。
2、循环链表的操作:
和线性链表基本一致,差别仅在于循环条件判定是否为空改为是否为头指针。
2.3.3双向链表
1、双向链表:
特点:
在双向链表的结点中有两个指针域,分别指向前驱和后继。
双向链表也可以有循环链表。
白银市第一中学桑慧琴
教案第二页
2、双向链表存储结构定义:
typedefstructDuLNode{
ElemTypedata;
structDuLNode*prior;
structDuLNode*next;
}DuLNode,*DuLinklist;
3、双向链表的操作:
双指针使得链表的双向查找更为方便、快捷。
NextElem和PriorElem的执行时间为O
(1)。
仅需涉及一个方向的指针的操作和线性链表的操作相同。
插入和删除需同时修改两个方向的指针。
4、双向链表的插入操作
1)pnext=q
2)pprior=qprior
3)qpriornext=p
4)qprior=p
2.3.4静态单链表
1.特点:
用数组描述的链表称为静态链表。
2.存储结构定义:
#defineMAXSIZE1000
typedefstruct{
ElemTypedata;
intcur;
}component,SLinklist[MAXSIZE];
3.运算实现
静态链表的操作和动态链表相似。
以整型游标代替动态指针。
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第6-7次
授课
时间
第3周
讲课内容
实验1
课型
(教法)
多媒体讲授
课题
单链表的建立及相关操作
教具
准备
教学
目的
掌握c上机调试的基本方法。
了解单链表的结构特点及相关概念,
掌握单链表结点链接等相关知识。
教学
重点
单链表的建立及相关操作
教学
难点
与关键
单链表的建立
教学内容及板书纲要:
[实验要求]
1、建立一个单链表。
2、并在指定的位置完成插入、删除运算。
3、并方向输出插入、删除结点后的单链表。
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第8次
授课
时间
第3周
讲课内容
3.1节
课型
(教法)
多媒体讲授
课题
栈的定义表示及应用
教具
准备
教学
目的
掌握栈的逻辑结构,存储结构及各种存储结构之上基本运算
教学
重点
栈的顺序存储及基本运算的实现
教学
难点
与关键
顺序栈基本运算的实现
教学内容及板书纲要:
第3章栈和队列
3.1栈
3.1.1栈的定义
限定仅在表尾进行插入或删除的线性表
栈顶:
表尾
栈底:
表头
3.1.2栈的表示和实现
1.顺序栈
(1)类型说明:
白银市第一中学桑慧琴
教案第二页
#defineSTACK_INIT_SIZE100
#defineSTACKINCREMENT10
typedefstruct{
SElemType*base,*top;
intstacksize;
}SqStack;
(2)重要算法的实现:
●入栈操作
●取栈顶元素操作
取栈顶元素与出栈不同之处在于出栈操作改变栈顶指针top的位置,而取栈顶元素操作不改
●出栈操作
●判栈空操作
2.链栈
一个链栈可由栈顶指针top唯一确定,当top为NULL时,是一个空栈。
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第9次
授课
时间
第4周
讲课内容
3.4节
课型
(教法)
多媒体讲授
课题
队列的定义表示及实现
教具
准备
教学
目的
掌握队列的逻辑结构,存储结构及各种存储结构之上基本运算的实现
教学
重点
队列的逻辑结构,存储结构及各种存储结构之上基本运算的实现
循环队列
教学
难点
与关键
循环队列
教学内容及板书纲要:
3.4队列
3.4.1抽象数据类型队列的定义
允许在线性表的一端插入,另一端进行删除操作的线性表称为队列.
队尾,队头,双向队列
3.4.2链队列
1、单链队列—队列的链式存储结构:
typedefstructQNode
{QElemtypedata;
structQNode*next;
}Qnode,*QueuePtr;
typedefstruct{
{QueuePtr*front,*rear;
}LinkQueue;
白银市第一中学桑慧琴
教案第二页
2、链队列的算法:
算法一:
构造一个空队列
算法二:
销毁一个队列
算法三:
判队列是否为空:
算法四:
入队列
算法五:
出队列
3.4.3循环队列
1.存储结构
#defineMAXQSIZE100
typedefstruct{
QelemType*base;
intfront;//头指针,若队列不空,指向队列头元素
intrear;//尾指针,若队列不空,指向队列尾元素的下一个位置
}SqQueue;
3.循环队列的重要算法:
算法一:
构造一个空队列
算法二:
队列长度
intQueueLength(SqQueueQ)
{return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;}
算法三、循环队列的入队列:
队列满条件:
(Q.rear+1)%MAXQSIZE==Q.front
算法四、循环队列出队列:
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第10次
授课
时间
第5周
讲课内容
3.2,3.5
课型
(教法)
多媒体讲授
课题
栈和队列的应用
教具
准备
教学
目的
掌握栈和队列的应用
教学
重点
栈的应用
教学
难点
与关键
栈的应用
教学内容及板书纲要:
3.2栈的应用
数据转换
递归
3.5队列的应用
银行排队
找舞伴
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第11次
授课
时间
第5周
讲课内容
4.1—4.2
课型
(教法)
多媒体讲授
课题
串的基本概念、存储及算法实现
教具
准备
教学
目的
掌握串的类型定义及不同存储结构之上基本运算的实现
教学
重点
串不同存储方式下的运算
教学
难点
与关键
字符串的运算
教学内容及板书纲要:
第4章串
4.1串类型的定义
1.串的概念
由零个或多个字符组成的有限序列。
一般记作s=‘c0c1c2…cn-1(n≥0)
2.串的基本运算
(1)求字符串的长度的运算strlen(str)
(2)字符串拷贝(赋值)strcpy(str1,str2):
(3)字符串的联接strcat(str1,str2):
(4)子串的查询strstr(str1,str2):
白银市第一中学桑慧琴
教案第二页
(5)字符串的比较strcmp(str1,str2):
(6)求子串substr(str1,str2,m,n):
(7)字符串的删除delstr(str,m,n):
(8)字符串的插入Insstr(str1,m,str2):
(9)字符串的替换replacestr(str1,i,j,str2)
4.2串的表示和实现
4.2.1定长顺序存储表示
#defineMAXSTRLEN255
typedefunsignedcharSString[MAXSTRLEN+1];//0号单元存放串的长度
串的实际长度可在这预定义长度范围内随意,超过预定义长度的串值则被“截断”
算法一:
串联接Concat(&T,S1,S2)
算法二:
求子串SubString(&Sub,S,pos,len)
4.2.2.堆分配存储表示
typedefstruct{
{char*ch
intlength;
}HString
4.2.3串的块链存储表示
定义:
#defineCHUNKSIZE80
typedefstructChunk{
{charch[CHUNKSIZE];
structChunk*next;
}Chunk;
typedefstruct{
Chunk*head,*tail;
intcurlen;
}LString;
存储密度=串值所占的存储位/实际分配的存储位
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第12次
授课
时间
第6周
讲课内容
4.3—4.4
课型
(教法)
多媒体讲授
课题
串的应用
教具
准备
教学
目的
学会串运算的算法
教学
重点
串的模式匹配算法实现
教学
难点
与关键
难点:
串的模式匹配算法
教学内容及板书纲要:
算法1、字符串的插入操作insstr(str1,i,str2)
算法2、字符串的删除delstr(str,i,j)
算法3、求子字符串算法
算法4、串的模式匹配算法
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第13-14次
授课
时间
第6周
讲课内容
实验2
课型
(教法)
多媒体讲授
课题
判断字符串是否中心对称
教具
准备
教学
目的
学会用c调试程序
综合所学的链表、栈、队列和串的知识
教学
重点
串的操作
教学
难点
与关键
串的操作
教学内容及板书纲要:
实验2判断字符串是否中心对称
[实验要求]
1、从键盘输入数据并将它们建立一种数据结构
2、并通过某种方法判断字符串是否中心对称,输出判断结果
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第15次
授课
时间
第6周
讲课内容
5.1—5.3.1
课型
(教法)
多媒体讲授
课题
数组的定义、顺序表示及特殊矩阵的压缩存储
教具
准备
教学
目的
掌握数组的定义及数组的顺序存储结构;
学习特殊矩阵的压缩存储方法及实现
教学
重点
数组的定义及数组的顺序存储结构
教学
难点
与关键
特殊矩阵的压缩存储
教学内容及板书纲要:
第5章数组
5.1数组的定义
1、多维数组的概念
多维数组中每个元素都是数组.
2、一维数组
一维数组可以看成是一个线性表或一个向量,适合于随机查找。
3、二维数组
二维数组可以看成是向量的推广。
二维数组中的每一个元素最多可有两个直接前驱和两个直接后继(边界除外),故是一种典型的非线性结构。
4、三维数组
三维数组最多可有三个直接前驱和三个直接后继
三维以上数组可称为多维数组,可有多个直接前驱和多个直接后继,是一种非线性结构
白银市第一中学桑慧琴
教案第二页
5.2数组的顺序表示和实现
数组一般不作插入和删除操作,宜采用顺序存储结构
1、存放规则
行优先
列优先
2.地址计算
行优先
(1)二维数组:
LOC(aij)=LOC(a00)+(i×n+j)×l。
(3)三维数组:
LOC(aijk)=LOC(a000)+(i×n×p+j×p+k)×L。
5.3矩阵的压缩存储
5.3.1特殊矩阵及其压缩存储
1.对称矩阵
2.三角矩阵
(1)上三角矩阵
(2)下三角矩阵
(3)对角矩阵
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第16次
授课
时间
第7周
讲课内容
5.3.2—5.5
课型
(教法)
多媒体讲授
课题
稀疏矩阵的压缩存储
广义表的定义、表示及存储
教具
准备
教学
目的
学习稀疏矩阵的压缩存储
学习广义表的定义、表示及存储
教学
重点
稀疏矩阵的压缩存储:
三元组表和十字链表
广义表的定义、基本操作(取表头、表尾)
教学
难点
与关键
难点:
稀疏矩阵的压缩存储:
三元组表和十字链表
广义表的基本操作(取表头、表尾)
教学内容及板书纲要:
5.3.2稀疏矩阵的压缩存储:
1.三元组表
2.带行指针的链表
3.十字链表
白银市第一中学桑慧琴
教案第二页
5.4广义表的定义
1.广义表的定义
2.广义表的表示方法
3.广义表的分类
(1)线性表:
(2)纯表
(3)再入表:
(4)递归表:
4.广义表的深度
一个广义表的深度是指该广义表展开后所含括号的层数。
5、广义表的长度:
表中包含原子个数,或者原子和子表的个数和或子表的个数。
6.广义表举例
7、广义表的运算
(1)、求广义表的头
head(表名)
(2)、求广义表的表尾
tail(表名)
5.5广义表的存储结构
采用链接存储方法
头尾链表:
扩展链表:
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第17次
授课
时间
第7周
讲课内容
6.1—6.2.2
课型
(教法)
多媒体讲授
课题
树的基本知识,二叉树的概念和性质
教具
准备
教学
目的
学习树的基本概念
掌握二叉树的基本概念和性质
教学
重点
二叉树的性质
教学
难点
与关键
难点:
二叉树的性质
关键:
树形结构的概念
教学内容及板书纲要:
第6章树与二叉树
6.1树的定义和基本术语
1.树的定义
2.树的常用术语
结点的度
树的度
儿子结点
父亲结点
兄弟结点
白银市第一中学桑慧琴
教案第二页
3.树的表示形式
4.树形结构的逻辑结构
树形结构的逻辑特征可用树中结点之间的父子关系来描述
树形结构是非线性结构
6.2二叉树
6.2.1二叉树的定义
二叉树的五种基本形态:
6.2.2二叉树的重要性质
性质1、在二叉树中的第i层上最多有的结点数为2i-1个结点。
(i≥1)
性质2、深度为k的二叉树至多有2k-1个结点(i≥1)
性质3、在任意二叉树中,若叶子结点(即度为零的结点)的个数为n0,度为1的结点个数为n1,度为2的结点个数为n2,则有n0=n2+1
性质4:
具有n个结点的完全二叉树树深为log2n+1
性质5、对于完全二叉树,对其结点采用“按层编号”比较方便,即从根结点开始由上而下逐层给结点编号,同一层的结点由左向右编号。
•对于完全二叉树中任一个编号为i的结点(1≤i≤n),它的父结点和左、右儿子结点的编号与i值有如下的关系:
1)如果i=1,则它是整个树的根结点,无父结点;
2)若i>1,则其父结点编号为。
3)如果2i≤n,则其左儿子结点编号为2i;若2i>n,则无左儿子结点。
4)如果(2i+1)≤n,则其右儿子结点编号为(2i+1);反之,则无右儿子结点。
白银市第一中学桑慧琴
教案第一页
课程名称:
数据结构
任课教师
桑慧琴
总课序
第18次
授课
时间
第8周
讲课内容
6.2.3—6.3.1
课型
(教法)
多媒体讲授
课题
二叉树的存储、遍历二叉树
教具
准备
教学
目的
掌握二叉树的存储结构
掌握二叉树的三种遍历方式
掌握遍历算法的应用
教学
重点
二叉树遍历算法
遍历算法的应用
教学
难点
与关键
二叉树遍历算法
教学内容及板书纲要:
第6章树与二叉树
6.2.3、二叉树的存储结构
1、顺序存储
适合于存储完全二叉树来说
2、链式存储结构
(1)二叉树的二叉链表存储:
typedefstructBiTNode{
TElemTypedata;
StructBiTNode*lchild,*rchile;
}BiTNode,*BiTree;
白银市第一中学桑慧琴
教案第二页
(2)二叉树的三叉链表存储
typedefstructBiTNode{
TElemTypedata;
StructBiTNode*lchil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 教案
