← メディア一覧

スタックとキュー:データをどう整理する?

5分52秒 | DB基礎FE

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

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

こんにちは、さて今日はですね、コンピュータが情報を整理するための すっごく基本的で、でもめちゃくちゃパワフルな2つの仕組み、スタックと キューについてお話しします。え、なんか難しそーって? いやいや全然大丈夫。実はこれ、僕たちの普段の生活の中に たくさんヒントが隠れてるんですよ。で、この仕組みがわかると、いつも使ってるアプリの あ、あの機能ってこうなってたのか!っていうのが、すとんと腑に落ちるようになります。面白そうでしょ? じゃあ早速ですけど、ちょっと想像してみてください。夕食が終わって お皿を洗いました。さて、その洗ったお皿、どうやって 重ねていきますか?ごくごく普通にいつも通りでいいですよ。 はい、どうでしょう?想像できました?実はですね、その 何気ないお皿の重ね方、それがまさに今日の1つ目のテーマ スタックを理解するすっごく大事な鍵になってるんです。 ね、まず洗った1枚目のお皿を置きますよね。で、2枚目は その上にぽんと重ねる。3枚目もそのまた上に。こんな感じで どんどん、どんどん、上に積んでいきますよね。 じゃあ今度は、お皿を使うとき、どのお皿からとりますか? まあ普通は、一番上にあるお皿からとりますよね。だって下の方から無理やり 引き抜こうとしたら、がしゃーんって大惨事になっちゃいますもんね。 そう、最後に置いたお皿を最初にとるわけです。 はい、ここがポイントです。この、最後にいれたものが最初にでてくるっていう仕組み これにね、ちゃんと専門的な名前があるんです。それが 「後入れ先出し」。英語の頭文字をとって、LIFO(ライフォ) LIFOっていいます。Last In First Outですね。 そう、つまりスタックっていうのは、このLIFO(後入れ先出し)のルールに従ってデータを整理する 方法のことなんです。もうまさにお皿の山とか、机の上に積んだ 本のタワーとか、あのイメージそのものです。この、上に積んで 上からとるっていう感覚、しっかり覚えておいてくださいね。 さあスタックのイメージはバッチリ掴めましたかね?OK、じゃあ次はですね、 頭をがらっと切り替えて全然違うシーンを想像してみましょう。今度は 「行列」です。どこかのお店の前にずらーっと並んでる、あの行列を 思い浮かべてみてください。 例えば、そうですね、大人気のラーメン屋さんとかどうでしょう。お店に入るために みんなちゃんと一列に並んでますよね。で、あなたもその列の 一番後ろに、こう並ぶわけです。 さて、この行列、お店に案内されるのは誰からですか? もちろん、一番最初に並んだ人からですよね。割り込みとかしない限りは。 それが一番公平なルールですもんね。 はい、これもさっきと同じです。この、最初に入れたものが最初にでてくるっていう仕組み これにもちゃんと名前があって。今度はスタックとは真逆のルール 「先入れ先出し」。英語の頭文字で、FIFO(フィフォ)、FIFOっていいます。 First In First Out。わかりやすいですよね。 そして、このFIFOのルールに従うデータ構造のことを、「キュー」って呼ぶんです。 いやーまさ人が作る行列そのもの。あとは信号待ちの 車の列とかも、まったく同じですよね。 はい、ということで、お皿の山のスタックと、ラーメン屋の行列のキュー。 この2つのイメージ、できましたよね。じゃあここからが本番です。 この2つが僕たちが毎日使ってるパソコンとかスマホの中で、一体どうやって 活躍してるのか、それをちょっと覗いてみましょう。 さあ、この表を見ると違いが一目瞭然ですね。まず左側、スタックから いきましょうか。ルールは、LIFO(後入れ先出し)でした。 これのね、一番身近な例が、ウェブブラウザの戻るボタンなんです。 考えてみてください。新しいページを開くたびにその履歴がどんどん上に積まれていく感じ。 で、「戻る」ボタンを押すと一番上にあるページ、つまり最後に見たページが ひょいっと取り出されて表示されますよね。ほら、まさにお皿の山と 同じ動きでしょ?じゃあ今度は右側の「キュー」。これはFIFO(先入れ先出し)。 こっちの代表選手は、プリンターですね。印刷したいファイルを、 あれもこれもってクリックすると、そのデータが印刷待ちの行列に順番に並んでいくんですよ。 で、プリンターは、最初に印刷指示されたものから順番に、うぃーん、がしゃって 処理していく。ね、まさにラーメン屋の行列、FIFOそのものですよね。 はい、どうでしょう。スタックとキュー、だいぶイメージが具体的になってきたんじゃないでしょうか。 よし、じゃあ最後に今日のポイントをもう一度だけ、しっかり頭に残るように 整理しておきましょう。 ここだけ抑えておけばOKです。まずスタックは、LIFO(後入れ先出し)。 これはお皿の山。いいですね。で、キューは、FIFO(先入れ先出し)。 こっちは人の行列。そして実際の使われ方としては、ブラウザの 「戻る」みたいに、1個前の状態に戻りたいときはスタック。そして プリンターみたいに頼んだことを順番通りにきっちり片付けてほしいときはキュー。 このセットで覚えておけば、もう完璧です。 さあこれで、あなたもスタックとキューの基本はマスターしましたね。 じゃあ最後に一つ面白い宿題です。あなたの周り、普段の生活とか、 いつも使ってるスマホアプリの中に、他にどんなスタックとキューが隠れてると 思いますか?意識して探してみると、「あ、これもそう!」って発見がきっとたくさんありますよ。 ぜひ見つけてみてくださいね。

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