队列专项练习

*
1.已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,第五个出队列的元素是( )
A.41
B.5
C.77
D.18
*
2.下列对队列的描述,正确的是( )
A.队列的特点是先进后出
B.在队列中,允许插入的一端称为队首,允许删除的一端称为队尾
C.刚建立的队列,队首指针和队尾指针均为0
D.出队操作时,先将队首指针加1,然后再将队首元素出队
*
3.小王在使用队列解决问题的过程中,初始时,队列为空,队列的首指针和尾指针分为为head、tail,接着小王开始进行了一系列的操作,操作序列为:入队、入队、入队、出队、入队、入队、出队、出队、出队、入队、入队,则操作结束时head和tail的值分别为( )
A.4 7
B.4 8
C.5 7
D.5 8
*
4.在汽车站候车室,信息提示屏上显示某个班车已做好准备,该车次的旅客可以检票上车。旅客q1与q2依次排队等待检票,工作人员在检票时,旅客q3,q4也排队等待检票。旅客q1检完票后准备上车,这时应该接受工作人员检票的旅客是( )
A.q1
B.q2
C.q3
D.q4
*
5.若用能存放6个元素(索引用0-5表示)的数组来实现循环队列,当前尾指针rear和头指针front的值分别为1和5,当从队列中出队一个元素再入队两个元素后,rear和front的值分别为( )
A.3和4
B.3和0
C.5和0
D.5和1
*
6.使用有m+1个元素的列表data作为循环队列SQ的存储空间,front为队列头指针,rear为队列尾指针,则执行出队操作的语句为( )
A.front=front+1
B.front=(front+1)%m
C.rear=(rear+1)%(m+1)
D.front=(front+1)%(m+1)
*
7.设循环队列中数组的下标范围是1-n,其头、尾指针分别为f和r,则该队列元素个数为( )
A.r-f
B.r-f+1
C.(r-f)%n+1
D.(r-f+n)%n
*
8.有如下程序:
qu=“thonepy”
h=5
t=4
s=“”
while h!=t:
    s=s+qu[h]
    h=(h+1)%len(qu)
print(s)
运行后,变量s的值为( )
A.pythone
B.python
C.epython
D.epytho
*
9.某诊所叫号系统中,利用队列来存储当前正在排队病人的编号,head指向队首元素,tail指向队尾元素的下一个位置。若当前没有病人,则head与tail的值分别为( )
A.head!=tail
B.head>tail
C.head==tail
D.head
*
10.若用一个规模为8的数组来实现循环队列,且当前队头指针head与队尾指针tail的值分别为5和7,当从队列中删除一个元素,再加入两个元素后,head和tail的值分别为( )
A.5和2
B.6和1
C.5和9
D.6和9
*
11.循环队列SQ(rear为队尾指针,front为队首指针,maxlen为循环队列的长度)队满的条件是( )
A.rear==SQ
B.(rear+1)%maxlen==front
C.rear==0
D.front==0
*
12.下列程序的功能是在一个循环队列中进行入队操作,输入“+n”表示入队操作,入队元素为n,输入“-”表示出队操作,输入“@”时表示操作结束,部分程序如下:
m=int(input(‘please input m:’)) #输入队列的规模m
que=[‘’]*m
head=tail=0
data=input(‘please input data:’)
while data!=’@’:
        if data[0]==”+”:
                que[tail]=data[1:]
                ____________
则程序中划线处应填入的代码为
A.head+=1
B.tail+=1
C.tail=(tail+1)%m
D.tail=tail%m+1
二、非选择题
13.小王在学习循环队列后发现循环队列的本质就是将队列空间的队列尾指针连接队列空间的队列首指针。小王想用循环单向链表表示一个循环队列,小王知道该队列的首指针head的位置,想尝试向循环队列的队尾增加一个值为x的元素。小王写了如下程序代码,请完善代码。*
data=[34,21,64,23,76,54]
nextL=[5,3,4,0,1,2]
head=1
x=80
data.append(x);nextL.append(-1) #添加元素
wz=len(data)-1
while nextL[t]!=head: #找队尾
          ②
nextL[t]=wz
t=head
print(data[t],end=””)
while nextL[t]!=head: #输出添加后的队列
        t=nextL[t]
        print(data[t],end=””)
学生个人信息:
姓名:
姓名:
选考班级:
选考班级:
行政班级:
行政班级:
问卷星提供技术支持
举报