#CSPJDSR03. CSP-J 数据结构|R03 队列 queue 与循环队列
CSP-J 数据结构|R03 队列 queue 与循环队列
CSP-J 数据结构|R03 队列 queue 与循环队列
训练重点: FIFO、front/back、数组模拟队列、循环队列判空判满与取模
每题只有一个正确选项。建议按 CSP 初赛方式独立完成,程序阅读题必须在草稿纸上逐步模拟。
第 1 题
队列 queue 的基本特点是( )。
{{ select(1) }}
- 后进先出
- 先进先出
- 自动升序
- 只能访问中间元素
第 2 题
关于 std::queue,下列说法正确的是( )。
{{ select(2) }}
q.pop()删除队尾q.front()读取队首q.back()删除队尾q.pop()会返回被删除元素
第 3 题
执行下面代码后,输出为( )。
queue<int> q;
q.push(3);
q.push(5);
q.push(8);
q.pop();
q.push(1);
cout << q.front() << " " << q.back();
{{ select(3) }}
3 15 15 88 1
第 4 题
用普通数组模拟队列,设 head 指向当前队头,tail 指向最后一个元素。一次出队通常使( )。
{{ select(4) }}
head--tail--head++tail++
第 5 题
循环队列采用“空出一个位置区分空和满”的做法,设数组长度为 N。队空条件是( )。
{{ select(5) }}
front==rear(rear+1)%N==frontfront+1==rearrear==N-1
第 6 题
同一循环队列中,队满条件是( )。
{{ select(6) }}
front==rearrear==N-1(rear+1)%N==frontfront==0
第 7 题
若循环队列数组长度 N=8,当前 rear=7,执行 rear=(rear+1)%N 后,rear 为( )。
{{ select(7) }}
- 0
- 1
- 7
- 8
第 8 题
若循环队列数组长度为 10,并采用“空出一个位置”的方法,则最多可保存( )个元素。
{{ select(8) }}
- 8
- 9
- 10
- 11
第 9 题
执行下面代码后,q.size() 为( )。
queue<int> q;
for(int i=1;i<=6;i++){
q.push(i);
if(i%2==0) q.pop();
}
{{ select(9) }}
- 2
- 3
- 4
- 6
第 10 题
下列任务最适合直接使用队列的是( )。
{{ select(10) }}
- 深度优先搜索 DFS
- 广度优先搜索 BFS
- 表达式后缀求值
- 函数递归返回
作答要求
- 栈题:画清 栈底 / 栈顶。
- 队列题:标清 队首 / 队尾。
- 循环队列:每次移动都写出取模后的下标。
- 链表题:逐句修改
next箭头,不要只靠心算。 - STL 题:特别注意函数是否会改变容器内容。
粤公网安备44195502000252号