#JC1053. 队列进阶

队列进阶

一、单项选择题(每题2分,共20分)

1、普通STL队列queue的数据存取规则是?() {{ select(1) }}

  • 先进后出
  • 先进先出
  • 两端均可随意增删
  • 按数值大小排序

2、STL队列中,用来获取队首元素的函数是?() {{ select(2) }}

  • q.back()
  • q.pop()
  • q.front()
  • q.empty()

3、循环队列中,用来区分空队列和满队列的处理方案是?() {{ select(3) }}

  • 增加一个全局计数器变量
  • 数组预留一个空位不存储元素
  • 增大数组为原来2倍
  • 每次存入前清空数组

4、数组长度为n的循环队列,计算队列内部元素个数的公式是?() {{ select(4) }}

  • (n + rear‑front) % n
  • rear - front
  • (rear‑front) % n
  • rear + front

5、循环队列判满的条件(数组大小n)?() {{ select(5) }}

  • front == rear
  • (rear+1)%n == front
  • rear == n
  • front == n‑1

6、猴子选大王(约瑟夫环),报到数字m但不满足淘汰条件,猴子应当如何处理?() {{ select(6) }}

  • 直接丢弃
  • 队首取出,重新入队到队尾
  • 直接输出编号
  • 存入栈容器

7、双端队列deque,在队列**最左边(队首)**插入元素使用哪个函数?() {{ select(7) }}

  • push_back()
  • push_front()
  • pop_front()
  • pop_back()

8、公交换乘题目,乘坐公交处理优惠券,首先要做的操作是?() {{ select(8) }}

  • 直接使用最后生成的优惠券
  • 把所有过期优惠券从队首剔除
  • 将全部优惠券重新排序
  • 直接累加公交票价

9、公交换乘,多张有效优惠券时,使用规则是?() {{ select(9) }}

  • 优先消耗最晚获得的券
  • 优先消耗最早获得的券
  • 随便挑选一张券
  • 同时消耗多张优惠券

10、公交换乘为什么不用STL的queue,改用数组模拟队列?() {{ select(10) }}

  • 数组运行速度一定比queue慢
  • 需要遍历队列内部元素,STL queue不方便遍历
  • STL queue会自动删除过期数据
  • 数组不需要判断边界

二、判断题(每题2分,共10分)

11、循环队列判空条件为 front == rear。() {{ select(11) }}

  • 正确
  • 错误

12、STL中q.pop()可以取出并且返回队首的元素值。() {{ select(12) }}

  • 正确
  • 错误

13、双端队列deque既可以队首增删,也可以队尾增删元素。() {{ select(13) }}

  • 正确
  • 错误

14、选领诵题目中,女生报到出局数字m直接立刻淘汰。() {{ select(14) }}

  • 正确
  • 错误

15、公交换乘,优惠券有效条件:公交开始时间 − 地铁获取优惠券时间 ≤45分钟,并且公交票价≤优惠券面值。() {{ select(15) }}

  • 正确
  • 错误