広告スペース(バナー)
💎Ruby レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 30 / 68

スタックとキュー(データ構造の基本)

このレッスンでは、スタックとキューという2つの基本的なデータ構造の違いを学び、Rubyでの実現方法を理解することを目標にします。「Ruby スタック キュー 実装」で調べている方向けの内容です。

スタックは「最後に入れたものを最初に取り出す(後入れ先出し)」、キューは「最初に入れたものを最初に取り出す(先入れ先出し)」データ構造です。「積み重ねた本」と「行列」の違いをイメージすると分かりやすいです。

サンプルコードでは、.pushで末尾に追加し.popで末尾から取り出すことでスタックを、.pushで末尾に追加し.shiftで先頭から取り出すことでキューを再現しています。同じ配列のメソッドでも、取り出す位置を変えるだけで全く違うデータ構造として振る舞う点に注目してみましょう。

初心者がよくつまずくのが、.pop.shiftの違いです。どちらも配列から要素を1つ取り除きますが、popは末尾から、shiftは先頭から取り除く点が異なります。この違いを理解していないと、意図した順番でデータを取り出せません。

どちらのデータ構造を選ぶかで、処理の順序やアルゴリズムの効率が大きく変わってきます。積み重ねた本と行列の違いをイメージすると、それぞれの動作の違いが分かりやすくなります。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではRubyを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
「元に戻す」機能や、順番待ちの仕組みを表現できるようになります。
広告スペース(バナー)
広告スペース(記事内)