見出し画像

スタックを知ろう!

データ構造のスタックについて解説します。スタックはプログラミングを学ぶ上で非常に重要な概念です。

スタックとは?

スタックはデータを一時的に保存するための「箱」のようなものです。特に重要な特徴は以下の2点です:

  1. 後入れ先出し(LIFO: Last In, First Out)
    最後に入れたデータが最初に取り出されます。

  2. 操作が限られている
    スタックでは以下の操作しかできません:

    • データを追加する(プッシュ: push)

    • データを取り出す(ポップ: pop)

    • 一番上のデータを見る(ピーク: peek または top)

スタックのイメージ

以下の図を見てみましょう:

操作例:
1. 空のスタックにデータを追加
2. データを取り出す

状態の変化:
スタック: [ ]  (空の状態)
push(1)   => [1]
push(2)   => [1, 2]
push(3)   => [1, 2, 3]
pop()     => [1, 2]  (3を取り出す)
peek()    => [1, 2]  (2を見るだけ、スタックは変化しない)

世の中にあるスタック

日常生活の中には、スタック(後入れ先出し、LIFO)の概念が自然と溶け込んでいる場面がたくさんあります。以下にその例をいくつか挙げてみます。

本やノートの積み重ね

机の上で本やノートを積み重ねた場合、一番上に置いたものを最初に手に取ることになります。これもスタックの典型的な使い方です。

ブラウザの「戻る」ボタン

ウェブブラウザでページを閲覧しているとき、ページの履歴がスタックとして管理されています。新しいページを開くとスタックに「push」され、戻るボタンを押すとスタックから「pop」されて前のページに戻ります。

ビデオゲームの「ポーズメニュー」

ゲーム内でポーズをすると、現在の画面の状態が保存され、ポーズメニューが表示されます。この仕組みは、ゲームの画面状態をスタックとして管理することで実現されています。

まとめ

スタックはシンプルながらも非常に強力なデータ構造です。
特に「後入れ先出し(LIFO)」の動作を活かした問題解決が得意です。
まずは、基本的な操作を試して慣れるところから始めましょう。

いいなと思ったら応援しよう!