データ構造とアルゴリズム

空のキューに A、B、C の順に要素を入れ、1つ取り出し、D を入れて1つ取り出し、E を入れて1つ取り出した。取り出された要素を順に並べたものはどれか。

  1. AA, B, C
  2. BC, D, E
  3. CC, B, A
答えと解説を見る

正解:A. A, B, C

キューは先に入れたものから順に取り出す先入れ先出し(FIFO)の構造です。A、B、C を入れた後の最初の取り出しでは A が出ます。その後 D や E を後ろに加えても、先頭にある B、C が先に出るので、取り出される順は A、B、C で、最後に D と E が残ります。C、D、E は、そのつど最後に入れたものを出すスタック(LIFO)として扱った場合の順です。キューは、プリンタの印刷待ちや、タスク間でデータを受け渡すメッセージキュー、幅優先探索などに使われます。

  • A. 正しい。後から入れた D や E より、先に入れた B、C が先に出ます。
  • B. そのつど最後に入れたものを出すスタック(LIFO)として扱った場合の順です。
  • C. 入れた順の逆で、キューの順番ではありません。
この分野を解く 分野ページへ

関連する計算ツール

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データ構造とアルゴリズムのほかの問題

  1. 逆ポーランド記法(後置記法)で書かれた式「3 4 + 2 * 5 −」を、数が来たらスタックに積み、演算子が来たら2つの値を取り出して計算し、結果を積む方法で評価した。結果はいくらか。ここで、演算子の左側の値は先に積まれた方の値とする。
  2. ハッシュテーブル(ハッシュ表)における衝突(コリジョン)の説明として正しいものはどれか。
  3. 大きさ7のハッシュテーブル(位置0〜6)に、ハッシュ関数 h(k) = k mod 7 でキー10、17、24、3をこの順に格納する。衝突したときは、位置を1つずつ後ろへずらして(6の次は0)空いている位置を探す線形探査法を使う。キー3が格納される位置はどれか。
  4. ハッシュテーブルの衝突を処理する方法として、チェイン法(同じ位置の要素を連結リストでつなぐ)とオープンアドレス法(表の中の空いている別の位置を探す)を比べた説明として正しいものはどれか。負荷率は、格納した要素数を表の大きさで割った値とする。
  5. 配列の中央の要素と比べて、探す範囲を半分ずつに絞っていく二分探索を使うための前提条件として正しいものはどれか。