跳到正文

平成23年度 特別試験 ITパスポート試験 問58

这道题的解析和你的作答记录。

問58
頻出度★☆☆

あるキューに要素 “33”, 要素 “27” 及び要素 “12” の三つがこの順序で格納されている。このキューに要素 “45” を追加した後に要素を二つ取り出す。2 番目に取り出される要素はどれか。

出典 平成23年度 特別試験 ITパスポート試験 問58
解説

問 58

  • 错误ア

    12 从队首数是第 3 个,所以它是第 3 次取出时才会出来的元素。取出两次只能取到 33、27 为止,因此错误。

  • イ

    正解 队列 (queue) 是 FIFO=先进先出的数据结构,添加元素一定在队尾进行(入队 enqueue),取出元素一定从队首进行(出队 dequeue)。题目中按 33、27、12 的顺序存放,因此队首是 33,其次是 27,再其次是 12。向其中追加 45 后,它接在队尾,队列从队首起的排列为 33、27、12、45。在此状态下取出两个元素,第 1 个出来的是队首的 33,第 2 个出来的是接下来的 27。因此第 2 个被取出的元素是 27,イ 为正确答案。

  • 错误ウ

    33 是最先存入的队首元素,在 FIFO 中是第 1 个被取出的元素。题目问的是第 2 个,因此错误。

  • 错误エ

    45 是最后追加的元素,接在队列的队尾。最先取出它是栈 (LIFO=后进先出) 的行为,在队列中它要到第 4 次(最后一次)才被取出,因此错误。

ここがポイント
  • 队列是 FIFO(先进先出)=在队尾添加(入队 enqueue)、从队首取出(出队 dequeue)。取出顺序与存入顺序相同。
  • 与之成对的栈是 LIFO(后进先出),最后放入的最先出来。不要弄混两者取出顺序的差异,这是本题的要点。
用語
解答問58イ
练这一题

作答记录