- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
专题15队列
学习目标1.通过生活实例,理解队列的性质和作用;
2.在理解队首和队尾指针的功能上,掌握队列和循环队列元素个数的计算方法;
3.在理解队首和队尾指针的功能上,掌握建队、入队和出队的操作过程.
栈和队列主要用于计算过程中保存的临时数据,为了更好地检索到需要的数据,需要复杂的存储机制,这样的存储机制称为缓存。栈和队列就是使用最多的缓存结构。队列是一种在数组两端分别进行存取的数据结构,最大特点是数据在存取时,无需查询,时间复杂度为O(1),先存取的数据先被取出。队列是一种先进先出、后进后出的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。队列一般按顺序结构存储,可以用数组来实现。设置头指针head和尾指针tail记录队首元素位置和队尾元素的下一个位置。在Python中,用列表(数组)创建队列,元素入队时,先将元素存储到tail指针指向位置,然后tail指针加1,即向队尾方向移动。元素出队时,当队列非空时条件head!=tail,先读取队首head指针指向的元素,然后head指针加1,即向队尾方向移动,直到head==tail为止。
(2023年6月浙江省选考)列表q长度为20,q[0]至q[4]的值依次为p,r,i,n,t,执行如下程序段后,输出的最后一个字符为()
head,tail=0,5
whileheadtail:
ifhead%3==0:
print(q[head])
else:
q[tail]=q[head]
tail+=1
head+=1
A.t B.n C.i D.r
重难点1队列的特性
队列是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端称为队首。先进先出是队列的特性,若元素出队后将入队,那么入队后的元素还是维持原来的顺序。建队时,指针head和tail均指向0,head加1表示出队,tail加1表示入队。判断队列是否空的条件是head!=tail,判断队列中元素的数量为tail-head。
例题有1个队列,队首到队尾的元素依次为8,3,2,9,5。约定:T操作是指队列中1个元素出队后再入队,Q操作是指队列中1个元素出队。则经过TTTQTTQ系列操作后,队列中队首到队尾的元素依次为()
A.2,9,5 B.2,5,8
C.5,8,2 D.8,3,2
变式有1个队列,队首到队尾的元素依次为8,10,12,9。若队首元素是偶数则先出队,再将偶数整除2后重新入队,若队首元素是奇数,直接出队。入队或出队各算一次操作,经过6次操作后,队列中队首到队尾的元素依次为()
A.2,3 B.6,2,3 C.9,4,5 D.9,4,5,6
重难点2队列的算法实现
头指针head记录队首元素位置,队尾指针tail记录队尾元素的下一个位置,队列q的队尾元素值为q[tail-1]。入队时,需将x赋值给q[tail],让其成为新的队尾元素,再移动tail指针。出队时,需先将q[head]赋值给x,再移动head指针。
例1执行下列Python程序段,输出结果为()
data=[1,2,3,1,2,3]
que=[0]*10
head=tail=0
foriinrange(len(data)):
ifdata[i]%2!=0:
que[tail]=data[i]
tail+=1
eliftail-head1:
que[tail-1]+=que[head]
head+=1
print(que[head:tail])
A.[3,2,1] B.[1,2,3]
C.[1,3,1] D.[3,2,3]
变式1有如下Python程序段:
s=″abcdddbha″
que=[″″]*10
head=tail=0
foriinrange(len(s)):
ifs[i]notinque[head:tail]:
que[tail]=s[i]
tail+=1
else:
head+=1
print(que[head:tail])
程序运行后,输出的结果是()
A.[a,b,c,d,h]
B.[a,b,c,d,d]
C.[c,d,b,h,a]
D.[a,d,d,d,a]
例2有如下Python程序段:
importrandom
q=[0]*8
head,tail=0,4
foriinrange(4):
k=random.randint(0,10)
ifk%2==0:
您可能关注的文档
- 专题13 简单算法程序实现 学案(含解析)2025届高中信息技术.DOCX
- 专题14 树 学案(含解析)2025届高中信息技术.DOCX
- 专题16 栈 学案(含解析)2025届高中信息技术.DOCX
- 专题18 基于数据结构的算法实现 学案(含解析)2025届高中信息技术.DOCX
- 专题八 系统分析 学案(含解析)2025届高中通用技术.DOCX
- 专题二 人机关系 学案(含解析)2025届高中通用技术.DOCX
- 专题九 控制分析 学案(含解析)2025届高中通用技术.DOCX
- 专题六 构件的受力形式分析 学案(含解析)2025届高中通用技术.DOCX
- 专题七 流程分析与设计 学案(含解析)2025届高中通用技术.DOCX
- 专题三 方案筛选 学案(含解析)2025届高中通用技术.DOCX
最近下载
- 2025年长沙民政职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 数字医疗项目可行性报告.docx
- 110kV变电站预试定检综合项目施工专项方案.doc VIP
- 2025年21年一消防工程师继续教育题 .pdf VIP
- 2024年南昌工学院单招职业技能测试题库word版.docx VIP
- 非煤矿山露天采石场主要风险分级表.pdf VIP
- Unit 2 Making a Difference Understanding ideas The Well that changed the world 课件-2023-2024学年高中英语外研版(2019)必修第三册.pptx
- 防治责任范围矢量化操作流程.docx
- 2025学年湖南省怀化市重点中学高三5月模拟(一模)考试数学试题 .pdf VIP
- 湘少版-英语-四下-Unit1_单元测试卷.pdf
文档评论(0)