データ構造データ構造シラバス9.0

スタックとは?

読み方: すたっく
1行定義(シラバス9.0 / IPA公式 · 確認日 2026-06-08

後入れ先出し(LIFO: Last In First Out)の原則でデータを管理するデータ構造。追加(push)と取り出し(pop)は最上部のみで行う

詳細解説

スタック(Stack)は、データの追加(push)と取り出し(pop)をデータ構造の「最上部(トップ)」のみで行う後入れ先出し(LIFO: Last In, First Out)のデータ構造です。実生活では「皿の積み重ね」に例えられます。最後に積んだ皿から先に取り出す構造と同じです。プログラムの動作においてはとくに重要で、関数呼び出しのたびに「スタックフレーム」(戻りアドレス・ローカル変数)が積まれ、関数が返ると消去される「コールスタック」として機能します。再帰処理の深さが深すぎると「スタックオーバーフロー」が発生するのはこの仕組みによります。また、数式の後置記法(逆ポーランド記法)の計算、ブラウザの「戻る」機能、テキストエディタのUndo(取り消し)機能などに使われます。FE試験では「スタックへの操作のトレース(push/pop後のトップ要素を問う)」「コールスタックの動作(再帰処理での積み重ね)」が頻出です。実装上は配列またはリンクリストで実現できます。

FE試験での出題ポイント

  • 1LIFO(後入れ先出し)の原則・push/pop操作のトレース
  • 2コールスタック:関数呼び出しのたびにスタックフレームが積まれる
  • 3逆ポーランド記法の計算処理でスタックを使う
  • 4再帰の深さ超過→スタックオーバーフロー

関連用語

キュー
データ構造
配列
データ構造
連結リスト
データ構造
再帰
アルゴリズムと疑似言語

スタック」を問う科目B問題を解いて理解を定着

合格ナビではFE科目B疑似言語問題をAI解説付きで練習できます。

IPA シラバス 9.0 準拠 / 最終更新: 2026-06-08