
浙教版(2019)选修一3.2队列同步练习 学校:_____姓名:_____班级:_____考号:_____ 一、选择题 1.有1个队列,队首到队尾的元素依次为a,b,c,d,e。约定:T操作是指队列中1个元素出队后再入队,Q操作是指队列中1个元素出队。则经过TTTQTTQ系列操作后,队列中队首到队尾的元素依次为( ) A.b,d,e B.b,e,c C.c,e,a D.a,c,b 2.一个队列的数据入队序列是1,2,3,4,则该队列的出队序列是( ) A.4,3,2,1 B.1,2,3,4 C.1,4,3,2 D.3,2,4,1 3.约定:T操作是指在队列中1个元素出队后再入队,E操作是指将1个元素入队,P操作是指队列中1个元素出队,队首指针head和队尾指针tail初始值均为0。则经过EETPETEP 系列操作后,队首指针head和队尾指针tail的值分别为( ) A.3 4 B.3 5 C.4 5 D.4 6 4.有1个队列,队首到队尾的元素依次为8,10,12,9。若队首元素是偶数则先出队,再将偶数整除2后重新入队,若队首元素是奇数,直接出队。入队或出队各算一次操作,经过6次操作后,队列中队首到队尾的元素依次为( ) A.2,3 B.6,2,3 C.9,4,5 D.9,4,5,6 5.下列有关队列的说法正确的是( ) A.队列是一种先进先出的线性表,插入一端为队首,删除一端称队尾 B.队列的存储结构,可用数组实现,也可用链表实现 C.一队列队头指针head,队尾指针tail,则tail-1-head表示队列中元素个数 D.学生排队就餐与软件连续撤消操作都是数据结构“队列”的应用实例 6.有如下Python程序段: st = [″h″,″a″,″p″,″*″,″p″,″Y″] que = [0]*20; key = 2 head,tail = 0, 0 for i in range (len(st)): if ″a″ <= st[i] <= ″z″: que[tail] = chr((ord(st[i]) - ord(″a″) + key)%26 + ord(″a″)) tail += 1 else: head += 1 while head != tail: print (que[head],end =″ ″) head += 1 程序运行后,输出的结果是( ) A.r r B.p p C.c r r a D.c r r A 7.有1个队列,现有元素依次为1,2,3,4。约定:P操作是指1个入队,T操作是指队列中1个元素出队后再入队,Q操作是指队列中1个元素出队。则经过PPTQTPQ系列操作后,队列中队首到队尾的元素依次为( ) A.1 B.1,3 C.3,4 D.3 8.列表a长度为6,a[0]至a[5]值依次为4,2,5,1,9。 que=[0]*7 head,tail=0,0 que[tail]=a[0] tail+=1 for i in range(1,len(a)): if a[i]>que[tail-1]: que[tail]=a[i] tail+=1; head+=1 elif a[i] < que[head]: que[tail]=a[i] tail+=1 print(que[head:tail]) 执行以上程序段后,输出结果是( ) A.4,7 B.5,1,9 C.2,5,1,9 D.4,7,2,5,1,9 9.某队列经过“出队”“入队”操作后,队首指针head=2,队尾指针tail=6,则该队列中剩余的元素个数是( ) A.2 B.4 C.5 D.6 10.有以下Python程序段: import random k=10;que=[0]*2*k que[0]=random.randint(1,20) head=0;tail=1;i=1 while i=0: if i%3!=0: q[tail]=a[i] else: q[tail]=q[head] head+=1 tail+=1 i-=1 print(q[head:tail]) 当执行该程序段后,输出的结果是( ) A.['n','t','y','o'] B.['n','t','y'] C.['n','o','n','t','y'] D.['n','o','n','t','y','o'] 12.假设队列的空间足够,队首指针head和队尾指针tail经过“出队、入队、出队、出队、入 ... ...
~~ 已预览到文档结尾了 ~~