×
科目A-1|アルゴリズムとプログラミング
スタック(Stack)は、最後に追加したデータが最初に取り出される「後入れ先出し(LIFO:Last In, First Out)」の特性を持つ論理的なデータ構造です。データを格納する操作を「プッシュ(Push)」、データを取り出す操作を「ポップ(Pop)」と呼びます。スタックは、現在処理しているタスクの一時中断と再開を管理するのに非常に適した構造です。コンピュータ内部のプログラム実行において、関数(サブルーチン)が呼び出された際、呼び出し元の処理を一時中断して元の場所(戻りアドレス)やローカル変数をメモリ上の「コールスタック(スタック領域)」にプッシュします。呼び出された関数の処理が終了すると、スタックから戻りアドレスをポップして、元の処理へと正確に戻ることができます。このように、プログラムの入れ子構造(ネスト)や再帰処理の制御において、スタックは不可欠な役割を担っています。

試験でのポイント