3.2 队列(教学课件)信息技术浙教版2019选择性必修1

2025-10-30
| 32页
| 953人阅读
| 6人下载
精品

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版选修1 数据与数据结构
年级 高二
章节 3.2 队列
类型 课件
知识点 队列的基本操作
使用场景 同步教学-新授课
学年 2025-2026
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 10.45 MB
发布时间 2025-10-30
更新时间 2024-09-14
作者 wuhao1987
品牌系列 上好课·上好课
审核时间 2024-09-14
下载链接 https://m.zxxk.com/soft/47387418.html
价格 4.00储值(1储值=1元)
来源 学科网

内容正文:

第2节 队列(1课时) 第3章 字符串、队列和栈 浙教版(2019) 选修一 队列的概念与特性 01 队列的基本操作 02 学习目录 依据解决问题的需要,恰当的选择数据结构队列。 01 通过项目的实践活动,体验用队列解决问题的基本流程,逐步形成运用队列结构解决问题的思维方式和学科方法。 02 学习目标 PART 01 队列的概念与特性 新课导入 看 看 一 银行取号、食堂排队打饭 新课导入 想 想 一 银行取号系统和叫号系统是怎么实现的,试着剖析其实现原理? 问题一: 分析食堂打饭为什么需要排队,这样做有什么好处? 问题二: 新课导入 排队和取号机能按照客户或患者到达时间的先后顺序,合理地安排办事次序。 这些事件对数据的处理都具有排队的特性,可以使用队列来解决。 什么是队列? 队列的概念与特性 一 概念 是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端称为队首。 已出队元素 队列元素 队首元素 队尾元素 队尾 队首 队列元素 队列的概念与特性 一 特性 (1)先进先出、后进后出 入队:在队列中插入一个元素的过程 出队:在队列中删除一个元素的过程 先进先出,后进后出 A C B 队列 队列的概念与特性 一 特性 (1)先进先出、后进后出 入队:在队列中插入一个元素的过程 出队:在队列中删除一个元素的过程 先进先出,后进后出 A C B 队列 元素入队顺序和元素出队顺序一致。 出队时,队首元素A优先出队,紧接着是B队尾元素C最后出队。 队列的概念与特性 一 特性 (2)有限序列性 队首元素:只有一个后驱节点 队尾元素:只有一个前驱节点 既有前驱,又有后驱 出队 入队 有限序列性:队列是一种线性表结构,元素的个数也是有限的 a1 a2 a3 …… an 队列的概念与特性 一 2.下列事件执行过程与队列特征不相符的是( ) A.在汽车加油站排队加油时不允许插队 B.当主机运行速度与打印机的打印速度不匹配时,为打印机设置一个打印数据缓冲区 C.把书叠放成一摞,最底下的书要最后才能拿出来 D.CPU分时系统可以根据用户请求,按顺序快速运行各程序段,实现多用户“同时”工作的假象 课堂 练习 答案:C 答案:D 1.幼儿园小朋友们排队玩滑滑梯,轮流爬上去,再轮流滑下来,此过程用哪种数据结构描述最合适( ) A.链表 B.字典 C.字符串 D.队列 队列的基本操作 二 队列按顺序结构存储,可用数组来实现。 添加标题 数组que中存储了一个队列,共有4个元素,队首元素为a1,队尾元素为a4。 队列的存储 在入队和出队的过程中,队首元素和队尾元素在数组que中的位置在改变,因此需要设置头指针变量head和尾指针变量tail,head记录队首元素所在的位置,tail记录队尾元素的下一个位置。 如上图,初始时,head指针变量与tail指针变量均记录下标为0的位置。 数组que的下标 a1 a2 a3 a4 0 1 2 3 队列的基本操作 二 提示:队列一般按顺序结构存储,可以通过数组实现。 head 记录队首元素所在的位置 tail 记录队尾元素所在位置的下一位置 a1 a2 a3 a4 0 1 2 3 4 0 1 2 3 4 tail head head tail 数组que的下标 数组que的下标 队列的head、tail指针变化图 元素a1,a2,a3,a4依次入队后,tail值为4,head值为0。 当a1,a2出队后,head记录下标为2的位置,tail值不变。当a3,a4出队后,head与tail的值均为4,队列为空。 队列的基本操作 二 队列的链式存储称为链队列,为了操作方便,可设置队首指针head记录链表的头节点,队尾指针tail记录链表的队尾节点。 拓展链接 队列的链式存储结构 空链队列: 非空链队列: head head 头节点 head 头节点 A B C D tail 尾节点 队列的链式存储结构 队列的基本操作 二 入队 建队 出队 常用操作 队列的基本操作 二 建队 假设我们现在有A”“B”“C”“D”4个字母,如何进行建队呢? 需要几个变量?列表长度是多少? 4 tail head 0 1 2 3 空队列 Python代码 head=0 tail=0 que=[""]*5 思考:为什么列表长度是5,而不是4呢? 队列的基本操作 二 入队 字母“A”“B”“C”“D”按序入队时,在队列que中,用tail指针变量跟踪各元素的入队。 A 4 tail head 0 1 2 3 A B 4 tail head 0 1 2 3 A B C 4 tail head 0 1 2 3 A B C D 4 head 0 1 2 3 tail 队列的基本操作 二 入队 字母“A”“B”“C”“D”按序入队时,在队列que中,用tail指针变量跟踪各元素的入队。 入队Python代码如下 que[tail]="A" tail=tail+1 que[tail]="B" tail=tail+1 que[tail]="C" tail=tail+1 que[tail]="D" tail=tail+1 #字母A入队 #tail=1 #字母B入队 #tail=2 #字母C入队 #tail=3 #字母D入队 #tail=4 队列的基本操作 二 出队 出队时,排在队首的元素依次出队,head指针变量依次加1,直至head值等于tail值时,队列为空。 A B C D 4 tail head 0 1 2 3 B C D 4 tail head 0 1 2 3 C D 4 tail head 0 1 2 3 出队Python代码如下 print(que[head]) # 输出A que[head]=“” head=head+1 print(que[head]) # 输出B que[head]=“” head=head+1 print(que[head]) # 输出C que[head]=“” head=head+1 队列的基本操作 二 出队 4 tail head 0 1 2 3 假 溢出 此时head=tail=4,还可以有新元素入队吗? 队列的基本操作 二 循环队列是将队列的队首和队尾连接起来,形成逻辑上的环状结构。当对循环队列中的元素进行入队、出队操作时,队首指针变量和队尾指针变量可以循环指向所有位置,从而有效地解决队列中“有空闲位置却不能入队”的问题。 拓展链接 循环队列 顺序队列的假溢出:随着队首元素出队会慢慢的空出一个个储存单元,但是队尾一直在进,最后导致前面的储存空间未满就队列就满了。 解决办法:将顺序队列做成循环队列! 队列的基本操作 二 某队列分配的最大空间为5,其最后一个位置上的元素为“E”,队首指针变量head的值为4,队尾指针变量tail的值为5(tail超出了队列的边界),此时,数组中存在空闲位置,但新的元素不能入队。将该队列改为循环队列,则在元素“E”入队后, head的值为4,队尾指针重新指向队首(tail的值为0),当新元素“F”入队时,就加入到队首,然后tail的值变为1。 拓展链接 循环队列 tail超出队列的边界 循环队列 队列的基本操作 二 1.已知队列元素的个数为6,则队首指针 head 和队尾指针 tail 的值不可能的是( ) A.head=0, tail=6 B.head=6,tail=0 C.head=3,tail=2 D.head=3,tail=8 B 队列的基本操作 二 Python中自带了队列模块,可以实现队列的建队、入队、出队等操作,代码如下: import queue #引用队列模块 q=queue.Queue(10) #建一个长度为10的队列q q.put("A") #字母A入队 q.put("B") #字母B入队 print(q.qsize()) #输出队列中元素的个数,个数为2 print(q.get()) #队首元素出队,出队元素为A print(q.qsize()) #输出队列中元素的个数,个数为1 拓展链接 Python自带的队列模块 队列的基本操作 二 例题 信息的加密 给定一个字符串S1,S2,…,Sn,按如下过程加密:取出第一个字符S1,将第二个字符S2放到字符串的末尾Sn后面,得到字符串S3…SnS2;接着把S3取出,S4放到字符串的末尾S2后面……直到最后一个字母Sn被取出。这些字母按取出的顺序形成一个新的字符串,称为密串。请编写一个加密程序,输入一个字符串(长度小于等于30),输出该字符串的密串。 队列的基本操作 二 以字符串“STRING”为例 (1) (2) 创建que队列,把字符串“STRING”按序压入队列,tail值为6,head值为0。 加密过程。先取出队首元素“S”,并输出,同时head值加1,记录新的队首元素“T”所在的位置。再取出队首元素“T”,并把该元素加入队尾,head值、tail值均加1。 加密的过程,类似队列的入队、出队操作。先把原字符串中各字符依次入队,得到一个队列,再执行加密的过程:取出队首元素,存到密串中,队列中第二个元素升级为队首元素;再取出队首元素,并把该元素插入队尾。反复操作,直至队列为空,得到密串。 步骤 (3) (3)重复操作(2),直至队列为空。 队列的基本操作 二 前两个字母的出队、入队过程如右 队列que T R I N G 0 1 2 3 4 5 6 7 tail head 队列que R I N G 1 2 3 4 5 6 7 tail head 队列que R I N G T 0 1 2 3 4 5 6 7 tail head “S”出队 “T”出队 “T”入队 队列的基本操作 二 用Python实现的程序如下: 课堂小练 三 1.用 python 列表模拟循环队列,并设置队首指针head指向队首元素,队尾指针指向队尾元素的下一个位置,则当列表长度 n=10,head=6,tail=3 时,队列中元素的个数为( ) A.5 B.6 C.7 D.8 2.已知队列(4,21,55,66,48,24,35,12,78,5)第 一个进入队列的元素是4,请问第3个出队列的元素是( ) A.35 B.12 C.55 D.5 D C 小结 四 小 结 队列的概念与特性 队列的基本操作 队列 1.建队 2.入队、出队 1.队列的概念 2.队列的特性 ①先进先出、后进后出 ②有限序列性 谢谢观看 第2节 队列 浙教版(2019) 选修一 $$

资源预览图

3.2 队列(教学课件)信息技术浙教版2019选择性必修1
1
3.2 队列(教学课件)信息技术浙教版2019选择性必修1
2
3.2 队列(教学课件)信息技术浙教版2019选择性必修1
3
3.2 队列(教学课件)信息技术浙教版2019选择性必修1
4
3.2 队列(教学课件)信息技术浙教版2019选择性必修1
5
3.2 队列(教学课件)信息技术浙教版2019选择性必修1
6
所属专辑
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。