【データ構造】最後に入れたものを最初に出す!「スタック」|情報処理問題1000本ノック
データの出し入れに制限を設けることで、処理の順序を効率的に管理する「スタック」。プログラミングやCPUの処理でも多用されるこの構造を攻略しましょう。
1. 問題:スタックからの取り出し操作
【 問題 】 データ構造の一つである「スタック(stack)」において、スタックの先頭(最後に入れた場所)からオブジェクトを取り出す操作を何と呼ぶでしょうか?
① プッシュ(Push) ② ポップ(Pop) ③ プット(Put) ④ ゲット(Get)
2. 正解:データ構造の操作に関する正解
正解: ② ポップ(Pop)
3. 解説:LIFO(後入れ先出し)の仕組み
スタックは、データの入り口と出口が同じ場所にあるデータ構造です。この性質を「LIFO(Last-In, First-Out)」と呼びます。
【図解:スタックの2大操作】
■ プッシュ(Push)
・データをスタックの「一番上」に積み上げる(挿入する)操作。
■ ポップ(Pop)
・スタックの「一番上」にあるデータを一つ取り出す操作。
★ 性質:後入れ先出し(LIFO)
・1番目に入れたデータは、2番目・3番目のデータが取り出されるまで、絶対に取り出すことができません。
■ プッシュ(Push)
・データをスタックの「一番上」に積み上げる(挿入する)操作。
■ ポップ(Pop)
・スタックの「一番上」にあるデータを一つ取り出す操作。
★ 性質:後入れ先出し(LIFO)
・1番目に入れたデータは、2番目・3番目のデータが取り出されるまで、絶対に取り出すことができません。
[ 比較して覚えたい:キュー(Queue) ]
★ キュー:入り口と出口が反対側にある構造(レジの行列と同じ)。
★ FIFO (First-In, First-Out):最初に入れたものが最初に出てくる。この時の操作は「エンキュー(入れる)」「デキュー(出す)」と呼びます。
★ キュー:入り口と出口が反対側にある構造(レジの行列と同じ)。
★ FIFO (First-In, First-Out):最初に入れたものが最初に出てくる。この時の操作は「エンキュー(入れる)」「デキュー(出す)」と呼びます。
1. 理解のコツ: 机の上に積み上げられた本をイメージしてください。新しく置くときは「一番上(プッシュ)」に置き、読むために取るときも「一番上(ポップ)」から取りますよね。一番下の本を取ろうとすると崩れてしまいます。
2. 試験対策の視点: 「LIFO(後入れ先出し)」という言葉とセットで出題されます。また、関数の呼び出し履歴(コールスタック)や、数式の逆ポーランド記法などの計算問題でも、このポップ操作が鍵となります。
4. まとめ
「スタックの先頭からデータを取り出す操作」。これがポップ(Pop)です。入れるときはプッシュ、出すときはポップ。この一対の動きが、複雑なプログラムの実行順序を支えています。
PR