解析在后面
解析:
p1-1:
错误,循环队列指的是后者,用数组表示的队列,利用求余数运算使得头尾相接
p1-2:
初始:
一波操作后:
也就是如果有出队操作,且rear指向队尾(也是起始位置),那front会大于rear
p1-3:
循环队列是用求余来解决这个问题的
x2-1:
删除就是front++;
插入则是Q.rear = (Q.rear + 1) % MAXQSIZE
要注意rear不能等于 MAXQSIZE也就是6
x2-2:
不太懂他想考啥,最大容量不就是m吗。。。
x2-3:
(front+size-1)就是rear(必须减一,否则rear就和front相等了),对 MAXQSIZE取余则是解决循环的问题
后面的就不用看了
1-1
所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (1分)
T F
作者: DS课程组
单位: 浙江大学
1-2
在用数组表示的循环队列中,front值一定小于等于rear值。 (1分)
T F
作者: DS课程组
单位: 浙江大学
1-3
不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。 (2分)
T F
2-1
若用大小为6的数组来实现循环队列,且当前front
和rear
的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front
和rear
的值分别为多少? (2分)
- 2和0
- 2和2
- 2和4
- 2和6
作者: DS课程组
单位: 浙江大学
2-2
如果循环队列用大小为m
的数组表示,且用队头指针front
和队列元素个数size
代替一般循环队列中的front
和rear
指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为: (2分)
m-1
m
m+1
- 不能确定
作者: DS课程组
单位: 浙江大学
2-3
如果循环队列用大小为m
的数组表示,队头位置为front
、队列元素个数为size
,那么队尾元素位置rear
为: (2分)
front+size
front+size-1
(front+size)%m
(front+size-1)%m
作者: DS课程组
单位: 浙江大学