Qraft(クラフト) 資格・学習クイズアプリ

基本情報技術者試験 練習問題 12:スタックとキューのデータ構造

スタック(Stack)とキュー(Queue)について述べた文として、正しいものはどれか。

  1. スタックはFIFO(先入れ先出し)の原則に従い、最後に挿入されたデータが最初に取り出される。
  2. キューはLIFO(後入れ先出し)の原則に従い、最初に挿入されたデータが最初に取り出される。
  3. スタックは関数呼び出しのコールスタック実装に使用される。
  4. キューは深さ優先探索(DFS)の実装に最適なデータ構造である。
  5. スタックもキューも、どちらも同じデータ構造であり、操作方法のみが異なる。

Qraftユーザーの成績:難易度 Sランク(レーティング1377)・正答率 20%(3/15回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:スタックは関数呼び出しのコールスタック実装に使用される。

スタックとキューは基本的なデータ構造であり、異なる動作原理を持ちます。

スタック(Stack):
- 操作原理:LIFO(Last In First Out)= 後入れ先出し
- 最後に挿入されたデータが最初に取り出されます。
- 実装:配列またはリンクリストで実装可能
- 用途:関数呼び出しのコールスタック、括弧のバランスチェック、深さ優先探索(DFS)

キュー(Queue):
- 操作原理:FIFO(First In First Out)= 先入れ先出し
- 最初に挿入されたデータが最初に取り出されます。
- 実装:配列またはリンクリストで実装可能
- 用途:幅優先探索(BFS)、プリンタキュー、タスクスケジューリング

正しいのは「スタックは関数呼び出しのコールスタック実装に使用される」です。プログラムが関数を呼び出すと、戻り先アドレスと局所変数がスタックに積まれます。関数から戻るとスタックから取り出されます。

DFSの実装にはスタック(再帰的に実装する場合はコールスタック)を使用します。BFS(幅優先探索)の実装にはキューを使用します。スタックとキューは全く異なるデータ構造です。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)