IT PASSPORT
ITパスポートの問題解説
問題
Webブラウザの「戻る」ボタンや、プログラムの関数呼び出しの戻り先管理のように、最後に記録した状態から順にさかのぼって処理したい。このとき適したデータ構造はどれか。
- ア スタック
- イ キュー(待ち行列)
- ウ リスト(連結リスト)
- エ ヒープ
出典:オリジナル問題|参考範囲:IPA ITパスポート試験シラバス(最新版)、情報処理技術者試験の基礎知識
正解と解説
正解:スタック
解説:スタックは机に本を積み上げ、一番上から取っていくイメージのデータ構造です。データを積む操作をプッシュ、取り出す操作をポップと呼び、最後に積んだものから順に取り出します。関数呼び出しでは呼び出した順に戻り先を積み、戻るときは直前の呼び出し先へ順にさかのぼるためスタックが使われます。ブラウザの「戻る」も同じ考え方です。キューは並んだ順に処理する先入れ先出し(FIFO)で逆の動きをし、リストは挿入・削除向き、ヒープは最大値・最小値の取り出し向きと、それぞれ用途が異なります。
覚え方:「直前に戻る・さかのぼる=スタック(LIFO)」「並んだ順=キュー(FIFO)」とセットで覚えましょう。本を積むのがスタック、行列に並ぶのがキュー、と日常のイメージで結びつけると混同しません。
他の選択肢はなぜ違う?
- イキューは先に入れたデータを先に取り出す先入れ先出し(FIFO)で、印刷待ち行列のように並んだ順に処理する用途に向きます。最後の状態からさかのぼる本問の動きとは逆です。
- ウリスト(連結リスト)は各要素が次の要素の位置を指して数珠つなぎにする構造で、途中への挿入や削除は得意ですが、取り出し順序がLIFOに固定される構造ではありません。
- エヒープは親が子より常に大きい(または小さい)という条件を保つ木構造で、最大値・最小値を高速に取り出す優先度付き処理に使われ、直前の状態へ戻る用途には適しません。
この問題について
IPAのITパスポート試験シラバスとIT基礎知識を参考に、Sikaku Master向けに独自作成した問題です。公式試験問題・過去問題の転載ではありません。
IPAの過去問題の転載ではなく、シラバス・公開情報に基づく独自問題として作成しています。