← メディア一覧

スタックとキュー:データはどのように並ぶのか

5分46秒 | DB基礎FE

基本情報技術者試験の頻出テーマを解説した動画コンテンツです。

トランスクリプト(字幕テキスト)

こんにちは。さて、コンピューターの中ってもう数えきれないほどのデータが 常に整理整頓されてるわけですけど、でも一体どんなルールで並んでるんだろうって思ったことありませんか? 今回はですね、その一番基本になる仕組み「スタック」と「キュー」について、 すごく身近な例を使って分かりやすく解き明かしていきたいと思います。 さて、じゃあ早速なんですけど、ちょっと想像してみてください。洗い物が終わったお皿、皆さんどうやって片付けますか? ねえ、そうですよね。ほとんどの人が洗ったお皿をどんどん上に積み重ねていく。まあ普通そうしますよね。 実はですね、その何気なーくやっているお皿の積み重ねこそが、なんとコンピューターサイエンスの世界で データ構造って呼ばれてるめちゃくちゃ重要な考え方の基本になってるんですよ。 いやあ、日常の中にすごい仕組みが隠れてるもんですよね。 では、まずそのお皿を重ねるっていう仕組みですね。スタックからもうちょっと詳しく見ていきましょうか。 このスタックっていうのは、まあデータを箱に入れていくようなものって考えてもらうと分かりやすいです。 で、大事な原則があるんです。それがLIFO。これLast-In, First-Outの略なんですけど、 日本語にすると後入れ先出し。つまり、一番最後に入れたものが一番最初に出てくる。 ね、すごくシンプルなルールですよね。 まさにお皿の山が、このスタックの動きをもう完璧に表してるんですよね。お皿を一枚置きます。 このデータを入れる操作、これを専門用語で「プッシュ」って言います。で、さらに一枚重ねる。これもプッシュです。 そしてじゃあお皿使おうかなって時に、一番上、つまり最後に追加した一枚を取りますよね。 この操作が「ポップ」です。入れるのがプッシュ、出すのがポップ。うん、こう覚えるとすごく分かりやすいんじゃないでしょうか。 このスタックっていう仕組み、実は僕たちのデジタルライフにはもう欠かせないものなんですよ。 例えば、ウェブブラウザの「戻る」ボタン。あれです。新しいページを見るたびに、 前のページの情報が上にプッシュされていく。そんなイメージなんですね。 で、「戻る」を押すと、一番上に積まれた、つまり最後に追加されたページがポップされて表示されると。 ああ、テキストエディタの「元に戻す」機能も、やった操作の履歴がどんどん積み重なっていくんで、これもまさにスタックの仕組みなんです。 さて、ここまでが後から来たものが先に出るっていうスタックでした。 じゃあ次は、全く逆のルールで動く、もう一つのすごく重要なデータ構造、キューについて見ていきましょう。 スタックがお皿の山だとしたら、うーん、例えば、人気のラーメン屋さんの行列。 あれはどう考えたらいいんでしょうかね。 そうなんです。この行列こそがまさにキューの考え方そのものなんです。 原則はFIFO。今度はFirst-In, First-Out。つまり先入れ先出しですね。 後から入ったものが先に出るスタックとは、本当に正反対のルールです。 だって行列に並んだら、当たり前ですけど、最初に並んだ人が最初にラーメンを食べられますよね。 この順番をちゃんと守るっていう、すごく公平で分かりやすいルールこそがキューの本質なんですよ。 このキューも僕たちの生活のあちこちで大活躍してます。例えばプリンター。 印刷ボタンを押した順番、つまり最初に入力されたデータから、ちゃんと順番に印刷されますよね。 スーパーのレジとか、チャットアプリのメッセージなんかも、全部届いた順番通りに処理される。 この順番通りっていうのがキューの一番大事な役割なんです。 はい、ここまでで後入れ先出しのスタックと先入れ先出しのキュー、この二つのデータ構造を見てきました。 じゃあコンピューターは一体どうやってこれらを使い分けてるんでしょうか. 気になりますよね。 ちょっとこの表で整理してみましょう。スタックはLIFO。お皿の山みたいに、 「あ、今のなし。最後に操作した内容を元に戻したい」っていう時にすごく便利なんです。 一方でキューはFIFO。行列みたいに、来たものから順番に公平に処理したいっていう場面で使われるわけです。 つまり一番大事なのは、時間の流れを遡りたいのか、それとも順番通りに進めたいのか。 この視点で考えると、どっちを使えばいいかがすっと見えてきますよね。 さあ、いよいよ最後のまとめに入ります。もしね、今日の内容忘れちゃっても全然大丈夫です。 この二つのイメージさえ頭の片隅に置いておけば、スタックとキューはもう怖くありませんから。 今日これだけは覚えて帰って欲しいっていうのが、この二つの光景です。 スタックは積み重なったお皿。最後に置いたものが一番上にあって、すぐ取り出せる。 だからLIFO、後入れ先出し。そしてキューはお店の行列。最初に並んだ人が最初にサービスを受けられる。 だからFIFO、先入れ先出し。この具体的なイメージこそが、コンピューターの中の一見複雑に見えるデータの流れを理解するための、めちゃくちゃ強力な武器になるんです。 さて、これでスタックとキューの基本はもうバッチリですね。この新しい視点を持って、ちょっと周りを見渡してみてください。 そしたら、今まで気づかなかったデータの行列とか山がきっとね、たくさん見つかるはずですよ。 皆さんの日常には、他にどんなスタックやキューが隠れていると思いますか?ぜひ探してみてくださいね。

このコンテンツは Web society で視聴・学習できます。