スタックとは?すたっく
スタックとは、最後に入れたデータを最初に取り出す(後入先出、LIFO)データのしまい方。積み重ねた皿を上から取るのと同じ。データを積む操作をプッシュ、取り出す操作をポップという。プログラムの中で処理を呼び出したとき、終わったら戻る場所を覚えておくのに使われる。試験では、プッシュとポップの操作を順に行ったあと、どのデータがどの順で取り出されるかを答える問題が定番。
最終更新:2026-10-10
この語が出る過去問を解く →背景
作業の途中で別の用件を頼まれ、その途中でさらに別の用件が入ることがある。終わったら、いちばん新しく割り込んだものから順に元の作業へ戻らないと、何をしていたか分からなくなる。この「新しいものから先に片づける」順序をコンピュータで扱うために、後に入れたものを先に出すしまい方が必要になった。
具体例
空のスタックにA、B、Cの順にプッシュすると、ポップではC、B、Aの順に出てくる。「push 1, push 2, pop, push 3, pop, pop」なら取り出される順は2、3、1となる。処理が呼ばれるたびに戻る場所を積み、戻るときに取り出す。
試験での引っ掛け
キュー(先に入れたものを先に出す、レジの行列のようなしまい方)との取り違えが最頻出。またプッシュとポップが交互に混ざる操作の並びでは、途中の状態を1つずつ書き出さないと順序を誤る。空の状態でポップするとアンダフロー、入る量を超えてプッシュするとオーバフローとなる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成22年度 春期 ITパスポート試験 問85(IPA)
下から上へデータを積み上げ、上にあるデータから順に取り出すデータ構造(以下、スタックという)がある。これを用いて、図に示すような、右側から入力されたデータの順番…
正解:Z, X, Y
要点:スタックは後入れ先出しで順序が制約される
スタックは後に入れたものが先に出る構造なので、いったん積んだデータより先に、それより下にあるデータを取り出すことはできない。Zを最初に出すにはX、Yを順に積む必要があり、その状態でスタックの一番上はYであるから、次に出せるのはYに限られる。したがってZの次にXが出る順番は実現できない。
出典:平成25年度 秋期 ITパスポート試験 問63(IPA)解説で登場
出典:平成28年度 秋期 ITパスポート試験 問92(IPA)
後に入れたデータが先に取り出されるデータ構造(以下,スタックという)がある。これを用いて,図に示すような,右側から入力されたデータの順番を変化させて,左側に出力…
正解:C, D, A, B
要点:スタックは後入れ先出し、積んだ順の逆でしか出せない
スタックは後入れ先出しなので、積んだ順の逆でしか取り出せない。Cを最初に出すにはAとBを積む必要があり、スタック内はAが下、Bが上になる。この状態ではAより先にBが出るため、AをBより先に出す順番は作れない。
出典:平成30年度 秋期 ITパスポート試験 問76(IPA)
複数のデータが格納されているスタックからのデータの取出し方として、適切なものはどれか。
正解:最後に格納されたデータを最初に取り出す。
要点:スタックは後入れ先出し、キューは先入れ先出し
積み上げた物を上から取っていくように、最後に入れたものを最初に取り出すデータ構造が問われている。この方式は後入れ先出しと呼ばれ、関数呼出しの戻り先の記録や式の評価などに使われる。先に入れたものから取り出す先入れ先出しの構造はキューである。
出典:平成30年度 春期 ITパスポート試験 問96(IPA)解説で登場
先入れ先出し(First-In First-Out, FIFO)処理を行うのに適したキューと呼ばれるデータ構造に対して“8”,“1”,“6”,“3”の順に値を格…
正解:1
要点:キューは先入れ先出し、格納順にそのまま取り出される
キューは先に入れたものから先に取り出される先入れ先出しのデータ構造である。8、1、6、3の順に格納したので、取出しは格納した順のまま8、1、6、3となる。したがって1回目に8、2回目に1が取り出される。後入れ先出しのスタックと取り違えないよう、構造の違いを押さえておきたい。
出典・参考
公式シラバスの7 基礎理論 > 36. データ構造 > (1) データ及びデータ構造に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。