1-1
所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (1分)
F
F:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在实际编程应用中来实现。因此,循环队列是一个抽象的数据结构,而单向循环链表或循环数组是具体的实现方式,不是数据结构本身。
1-2
在用数组表示的循环队列中,front值一定小于等于rear值。 (1分)
F
1-3
不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。 (2分)
T
链式存储反之
2-1
若用大小为6的数组来实现循环队列,且当前front
和rear
的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front
和rear
的值分别为多少? (2分)
2-2
如果循环队列用大小为m
的数组表示,且用队头指针front
和队列元素个数size
代替一般循环队列中的front
和rear
指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为: (2分)
m-1
m
m+1
有了size后就不必留一个空间表示队列满了,所以答案为m。
正常来讲,front == rear 既可以表示只有一个元素,或者满元素。所以如果没有size的话,答案应该是m-1。有了size,只需根据数组大小来判断元素个数。
2-3
如果循环队列用大小为m
的数组表示,队头位置为front
、队列元素个数为size
,那么队尾元素位置rear
为: (2分)
front+size
front+size-1
(front+size)%m
(front+size-1)%m