网站大量收购独家精品文档,联系QQ:2885784924

专题15 队 列 学案(含解析)2025届高中信息技术.DOCXVIP

专题15 队 列 学案(含解析)2025届高中信息技术.DOCX

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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:

文档评论(0)

中小学教学资料 + 关注
实名认证
服务提供商

提供小学、初中、高中信息科技教案、试卷、课件等优质教学资源

1亿VIP精品文档

相关文档