《数据结构[Python语言描述]》教案第7课栈和队列(3.5-3.7).docx
《《数据结构[Python语言描述]》教案第7课栈和队列(3.5-3.7).docx》由会员分享,可在线阅读,更多相关《《数据结构[Python语言描述]》教案第7课栈和队列(3.5-3.7).docx(8页珍藏版)》请在课桌文档上搜索。
1、课题第7课栈和队列(3.53.7)课时2课时(90min)教学目标知识目标:(1)理解队列的定义及其基本操作(2)掌握队列的顺序和链式两种存储结构及其基本操作的实现技能目标:能使用队列解决程序设计中的问题素质目标:理解队列的原则,养成遵守规则的良好习惯教学重难点教学重点:队列的定义及其基本操作、队列的顺序和链式两种存储结构及其基本操作教学难点:队列的顺序和链式两种存储结构及其基本操作教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:如何理队列?【蚂思考、
2、传授新知【教师】通过学生的回答引入要讲的知识,介绍队列概述、队列的顺序存储、队列的链式存储3.5队列概述3.5.1 队列的定义【教师】随机邀请学生回答以下问题栈与队列有什么区别?【学生】聆听、思考、回答与栈狗以,队列也是一种操作受限的线性表,不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。通常将表中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头,队列的插入操作称为进队(或入队),队列的删除操作称为出队(或退队).当队列中没有元素时称为空队。*【教师】用多媒体展示“队列的存储结构”图,并介绍该结构进队队尾1gn-队头一H的41出队元素的进队和出队是按照先进先出
3、(fi115tinfirstout,FIFO)”的原则进行的,因此,队列又称为先进先出的线性表。【拓展阅读】稍有礼仪讲究的地方,通常先来者都会优先于后来者。例如,在餐厅排队打饭时,应遵循先到先得的原则;购买火车票时,也应遵循先到先得的原则等。(详见教材)【教师】讲解实例3-8【实例3-8】已知元素的进队顺序为A、B、C、D,写出可能的出队序列。【问题分析】队列遵循先进先出的原则,因此进队顺序为A、B、C、D时只有一种出队序列,即A、B、C、De3.5.2队列的基本操作【教师】用多媒体展示“队列基本操作的定义”表格,并介绍基本操作基本操作说明_init_()初始化队列,即构造一个空队列queue
4、Empty()队列已存在的前提下,判断队列是否为空inQueue(e)队列已存在的前提下,插入数据元素“成为新的队尾元素deQueue()队列已存在的前提下,删除队头元素getHead()队列已存在的前提下,返回队头元素length()队列已存在的前提下,返回队列中实际元素的个数3.6队列的顺序存储顺序队列【教师】随机邀请学生回答以下问题什么是队列的顺序存储?【学生】聆听、思考、回答队列的顺序存储是指,在内存中用一组地址连续的存储单元依次存放从队头到队尾的数据元素。采用顺序存储结构的队列称为顺序队列。3.6.1 顺序队列与循环队列由于队列中插入和删除操作分别在表的两端进行,因此需要增加队头指针
5、front和队尾指针rear。其中,from指针指向队头元素的位置,rear指针指向队尾元素存储位置的下一个存储位置。【教师】用多媒体展示“顺序队列中front指针、rear指针和队列中元素之间的关系”图(详见教材),并介绍三者的关系初始化队列时front和rear都为Oe当有新的元素进队时,新元素存入rear所指的存储位置,并且rear加1;当元素出队时,front所指存储位置的元素出队,并且front加1。【教师】随机邀请学生回答以下问题队列的顺序存储的缺点是什么?【学生】聆听、思考、回答随着元素的进队和出队,front指针和rear指针都在增加。但是,当达到最大容量时已经满足队满条件,此
6、时,即使有元素出队而空出存储空间,也无法进行元素的进作,从而造成存储空间的浪费,这种现象称为“假溢出。为了使存储空间得到充分利用,于是引入了循环队列。将队列的存储空间看作一个环状的空间,即将队列的首、尾位置连接起来,这样的结构为循环队列.【教师】用多媒体展示“循环队列中front指针、rear指针和队列中元素之间的关系”图(详见教材),并介绍三者的关系循环队列为空和为满的判断条件都是front=rear,所以无法根据该条件判断当前队列状态。为此,可规定少用一个元素的存储空间,当rear指针的下一个位置是front指针时,则停止进队操作,此时队列已满,判断条件为(rear+l)%max=fron
7、t3.6.2循环队列中基本操作的实现1.初始化循环队列初始化循环队列是为循环队列动态分配存储空间,其具体步骤如下。(1)设置循环队列的最大容量。(2)设置循环队列的存储空间。(3)将循环队列设置为空。【算法描述】class CirQueue:def _init_(self, max): self.max = maxself.data = None * self.maxself. front = 0self. rear = 0#循环队列结点类#构造方法# 设置循环队列的最大容量# 设置循环队列的存储空间# 将循环队列设置为空2判断队列是否为空判断循环队列是否为空就是判断队列中元素个数是否为0,可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构【Python语言描述 数据结构 Python 语言 描述 教案 队列 3.5 3.7
链接地址:https://www.desk33.com/p-1242714.html