C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のStackクラスを徹底解説!PushとPopの使い方とサンプルコード

C#のStackクラスは、LIFO(Last-In, First-Out:後入れ先出し)方式でオブジェクトを管理するコレクションです。最後に追加した要素から順に取り出したい場合に活用されます。

Stackクラスには、以下のような便利なプロパティが用意されています。

  • Count … スタック内に格納されている要素数を取得します。

Push操作:スタックへの要素追加

Pushメソッドを使うと、スタックの先頭(一番上)に新しい要素を追加できます。

Stack st = new Stack();

st.Push('A');
st.Push('B');
st.Push('C');
st.Push('D');

この例では、A、B、C、Dの順に要素が積まれ、スタックの先頭は「D」となります。

Pop操作:スタックからの要素取り出し

Popメソッドは、スタックの先頭にある要素を取り出して削除します。LIFO構造のため、常に最後に追加された要素が最初に取り出されます。

また、先頭の要素を削除せずに確認したい場合はPeekメソッドを使用します。次にPopされる値を事前にチェックできるので便利です。

実行サンプルコード

以下は、StackクラスのPush()メソッドとPop()メソッドを使った完全なサンプルプログラムです。

using System;
using System.Collections;

namespace CollectionsApplication {
    class Program {
        static void Main(string[] args) {
            Stack st = new Stack();

            st.Push('A');
            st.Push('B');
st.Push('C');
            st.Push('D');

            Console.WriteLine("Current stack: ");
            foreach (char c in st) {
                Console.Write(c + " ");
            }
            Console.WriteLine();

            st.Push('P');
            st.Push('Q');
            Console.WriteLine("The next poppable value in stack: {0}", st.Peek());
            Console.WriteLine("Current stack: ");

            foreach (char c in st) {
                Console.Write(c + " ");
            }

            Console.WriteLine();
            Console.WriteLine("Removing values....");
            st.Pop();
            st.Pop();
            st.Pop();
            Console.WriteLine("Current stack: ");
            foreach (char c in st) {
                Console.Write(c + " ");
            }
        }
    }
}

処理の流れを解説

  1. まずA〜Dの4文字をPushでスタックに追加します。
  2. foreachループでスタックの中身を表示すると、「D C B A」の順に出力されます(後入れ先出しなので逆順)。
  3. さらにPとQをPushした後、Peekメソッドで次に取り出される値「Q」を確認します。
  4. その後、Popを3回呼び出すことで、Q、P、Cが順番に取り除かれます。
  5. 最終的にスタックには「B A」が残ります。

このように、Stackクラスを使いこなせば、履歴管理や巻き戻し処理など、LIFO構造が必要な場面で効率的にデータを扱えます。ぜひ実際にコードを実行して、動作を確認してみてください。

  1. C#のStackクラスの使い方を解説!主要メソッドとサンプルコード付き

    C#におけるStackクラスは、オブジェクトを「後入れ先出し(LIFO:Last-In, First-Out)」方式で管理するコレクションを表すために使用されます。最後に追加した要素が最初に取り出される仕組みで、本を積み重ねたスタックのように、一番上に置いた本から順に取り出すイメージです。Stackクラスの主なメソッドStackクラスには、要素の操作に便利なメソッドが多数用意されています。以下に代表的なメソッドをまとめました。No.メソッドと説明1public virtual void Clear();スタックからすべての要素を削除します。2public virtual bool Contai

  2. 【Python】スタックを実装するプログラムの書き方とサンプルコード解説

    Pythonでスタックを実装する場合は、まずスタック専用のクラスを定義し、そのインスタンスを生成します。その後、要素を追加する「プッシュ(push)」や、要素を取り出す「ポップ(pop)」を行うメソッドを定義し、インスタンスを通じてこれらのメソッドを呼び出して利用します。 スタックとは スタックは「後入れ先出し(LIFO: Last-In, First-Out)」と呼ばれるデータ構造です。最後に追加した要素が最初に取り出されるという特性を持ち、テキストエディタの元に戻す(Undo)機能や、プログラムの関数呼び出し履歴の管理など、さまざまな場面で活用されています。 サンプルコード 以下は、Py