专题13 队 列 知识点一 队列的性质 1.在该系统中,可以利用队列来储存当前正在排队顾客的编号,head指向队首元素,tail指向队尾元素的下一个位置,若tail=head+3,则现在排队的顾客数量为( ) A.2 B.3 C.4 D.5 2.约定:T操作是指在队列中1个元素出队后再入队,E操作是指将1个元素入队,P操作是指队列中1个元素出队,队首指针head和队尾指针tail初始值均为0。则经过EETPETEP系列操作后,队首指针head和队尾指针tail的值分别为( ) A.3 4 B.3 5 C.4 5 D.4 6 3.有1个队列,队首到队尾的元素依次为8,10,12,9。若队首元素是偶数则先出队,再将偶数整除2后重新入队,若队首元素是奇数,直接出队。入队或出队各算一次操作,经过6次操作后,队列中队首到队尾的元素依次为( ) A.2,3 B.6,2,3 C.9,4,5 D.9,4,5,6 4.已知队列元素的个数为5,则队首指针head和队尾指针tail的值不可能是( ) A.head=1,tail=6 B.head=2,tail=6 C.head=5,tail=0 D.head=3,tail=2 5.假设队列的空间足够,队首指针head和队尾指针tail经过“出队、入队、出队、出队、入队、入队、出队”这一系列操作后,head=7,tail=9。则操作前的head和tail的值分别为( ) A.11 12 B.2 5 C.3 6 D.3 5 6.某队列的数据结构如图所示,head和tail分别是队列的头指针和尾指针。 现对该队列进行下列操作:①队首元素出队后再入队;②队首元素出队并输出,重复①②操作直到队列为空。若队列的数据元素为“Python”,则输出的顺序是( ) A.Python B.Ptoynh C.yhntPo D.yhntoP 7.假设高铁站的售票窗口平均每分钟过来一个人购票,每人的购票时间平均约为2分钟,某车站在中午时段开了一个售票窗口,12:01:00的时候有1个人刚开始购票,3个人在等待,那么12:11:00时队伍中等待购票的人数为( ) A.7 B.8 C.9 D.10 知识点二 队列的算法实现 1.有如下Python程序段: Q=[0]*10 cnt,head,tail=0,0,0 S=input() for i in range(0,9,2): t=S[i] n=int(S[i+1]) if t=='A': for j in range(n): Q[tail]=cnt tail+=1 cnt+=1 elif t==″D″: while head !=tail and n>0: head+=1 n -=1 print(Q[head:tail]) 若输入S的值为″A2D1A1D3A2″,则程序的输出结果是( ) A.[3,4,5] B.[3,4] C.[4,5] D.[4] 2.有如下Python程序段: que=['A','B','C','D','E'] for i in range(10): que.append(-1) n=5;head=0;tail=5 for i in range(n): print(que[head],end=' ') head+=1 for j in range(i): que[tail]=que[head] tail+=1 head+=1 执行该程序段后,显示的结果是( ) A.ACBED B.ABDCE C.ABDEC D.ACBDE 3.执行如下程序段后,输出的结果是( ) q=[6,8,9,7,4,5,2,3] pre=10 head,tail=0,len(q) while head!=tail: if pre>q[head]: pre=q[head] print(q[head],end=' ') head+=1 A.6 8 9 B.6 4 2 C.6 5 3 D.6 4.使用Python自带的队列模块queue可以更便捷地实现队列的操作,代码如下: import queue q=queue.Queue(5) q.put(″A″) #字符A入队 q.put(″B″) q.put(″C″) 已知get函数可以按照队列特性出队,若要使字符“C”从队列q中出队正确的方法是( ) A.直接使用语句q.get(″C″) B.直接使用语句q.get() C.使用两次语句q.get() D.使用三次语句q.get() 5.有如下Python程序段: q=[chr(i) for i in range(65,70)] ans=″″ head,tail=0,len(q) while head
~~ 您好,已阅读到文档的结尾了 ~~