一.单选题(共9题,90.0分)
1
设环形队列中数组的下标为0~N-1,其队头、队尾指针分别为front和rear(front指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为 。
A、rear-front
B、rear-front-1
C、(rear-front)%N+1
D、(rear-front+N)%N
正确答案: D
2
若用一个大小为6的数组来实现环形队列,队头指针front指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。若当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。
A、1和5
B、2和4
C、4和2
D、5和1
正确答案: B
3
某循环队列有队首指针front和队尾指针rear,在队不满时进队操作仅会改变( )。
A、front
B、rear
C、front和rear
D、以上都不对
正确答案: B
4
设循环队列中数组的下标是0~N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),则其元素个数为( )。
A、r-f
B、r-f-1
C、(r-f)%N+1
D、(r-f+N)%N
正确答案: D
5
设循环队列中数组的下标是0~N-1,其头指针和尾指针分别为f和r,则其元素个数为( )。
A、r-f
B、r-f-1
C、(r-f)%N+1
D、(r-f+N)%N
正确答案: D
6
判定一个循环队列Q(存放元素位置为0~QueueSize-1)队满的条件是( )。
A、Q.front= =Q.rear
B、Q.front+1= =Q.rear
C、Q.front= =(Q.rear+1 )% QueueSize
D、Q.rear= =(Q.front+1 )% QueueSize
正确答案: C
7
以下各种存储结构中,最适合用作链队的链表是 。
A、队首指针和队尾指针的循环单链表
B、带队首指针和队尾指针的非循环单链表
C、只带队首指针的非循环单链表
D、只带队首指针的循环单链表
正确答案: B
8
以下数据结构中元素之间为非线性关系的是( )。
A、栈
B、队列
C、线性表
D、以上都不是
正确答案: D
9
队列又称为( )的线性表。
A、先进先出
B、后进先出
C、后进后出
D、随意进出
正确答案: A
二.填空题(共1题,10.0分)
1
有一循环队列(0~QueueSize-1),设队头指针指向队头元素front,队尾指针指向队尾元素的下一个位置,则 (1)在循环队列中,队空标志为 ();队满标志为 ()。 (2)当rear≥front时,队列长度为() ;当rear<front时,队列长度为()。(所有的空中涉及到队头指针都用front表示,队尾rear,例:rear=front; MaxSize)
正确答案:
第一空:
rear=front
第二空:
(rear+1)% MaxSize=front
第三空:
rear-front
第四空:
rear-front+MaxSize