プログラム

スタック(stack)とは

2020年9月4日

スタック(stack)

スタックとは、データ構造の一つ(データを格納する入れ物)で、入ってきたデータを順番に格納し、最後に格納したデータから順に取り出す、 後入れ先出し(LIFO:Last-In First-Out)方式のデータ構造です。

スタック

上記はスタックのイメージ図です。スタックに入れる時は、順番に格納していき、スタックから取り出す時は、最後に格納したデータから順番に取り出します

最後に乗った人が最初に降りる「エレベータ」と同じイメージです。

 

スタックと似たようなデータ構造に「キュー(queue)」があります。

キューは、先に格納したデータから順に取り出す 先入れ先出し(FIFO:First-In First-Out)の方式のデータ構造です。

それに比べて、スタックは、後に格納したデータから取り出す 後入れ先出し(Last-In First-Out)の方式のデータ構造です。

スタックの操作

スタックに追加する(PUSH)

スタックに追加する操作ことを、プッシュ(PUSH)といいます。

以下は、プッシュ(PUSH)の動作イメージです。

データ1をスタックに「PUSH」

空のスタックに「データ1」を追加(PUSH)します。

pushの動作例1

スタックに「データ1」が追加されました。

プッシュの動作例2

データ2をスタックに「PUSH」

続いて「データ2」をスタックに追加(PUSH)します。

プッシュの動作例3

「データ2」は「データ1」の後に格納されます。

プッシュの動作例4

スタックから取り出す(POP)

スタックから取り出すことを、ポップ (POP)といいます。

以下は、ポップ (POP)の動作イメージです。

スタックからデータを取り出す(POP)

スタックに「データ1」と「データ2」が格納されているとします。先に格納したのが「データ1」、後に格納したので「データ2」です。

プッシュの動作例4

このスタックからデータを取り出す(POP)と、後に格納した「データ2」が取得できます。

popの動作例1

再びスタックからデータを取り出す(POP)

再びスタックからデータを取り出すと、残りの「データ1」が取得できます。

popの動作例2

このようにポップ (POP)では、後に格納されたデータから順番に取り出されます。

helpful