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

C#のStackクラスとは?使い方と基本操作をわかりやすく解説

C#のStackクラスは、要素を「後入れ先出し(LIFO:Last-In, First-Out)」の形式で管理するためのコレクションです。最後に追加した要素が最初に取り出されるという特性を持つため、履歴管理や元に戻す(Undo)処理など、特定の順序でデータを扱いたい場面で活用されます。

Stackの基本操作:Push と Pop

Stackでは、要素を追加することを「プッシュ(Push)」、要素を取り出すことを「ポップ(Pop)」と呼びます。

  • Push:スタックの一番上に新しい要素を追加する
  • Pop:スタックの一番上から要素を取り出して削除する

Stackクラスの使用例

まず、Stackに要素を追加するコードを見てみましょう。

Stack st = new Stack();

st.Push('H');
st.Push('I');
st.Push('J');
st.Push('K');
st.Push('L');

この例では、文字 'H' から 'L' までの5つの要素を順番にPushしています。StackはLIFO構造のため、後に追加した要素ほど先に取り出されます。

要素数を取得する

Stack内の現在の要素数は、Countプロパティを使って確認できます。

Console.WriteLine("Count: " + st.Count);

完全なサンプルコード

ここまでの内容をまとめた完全なコードが以下です。

using System;
using System.Collections;

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

            st.Push('H');
            st.Push('I');
            st.Push('J');
            st.Push('K');
            st.Push('L');

            Console.WriteLine("Count: " + st.Count);
        }
    }
}

実行結果

Count: 5

5つの要素をPushしたため、Countプロパティの出力は「5」となります。なお、この例では非ジェネリックの System.Collections.Stack を使用していますが、型安全なコードを書く場合は Stack<char> のようなジェネリック版(System.Collections.Generic 名前空間)の利用も検討するとよいでしょう。

  1. 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); この

  2. C#のStackクラスでCountプロパティを使って要素数を取得する方法

    C#のStackクラスに追加された要素の数を確認したい場合には、Countプロパティを使用します。Countプロパティは、スタック内に現在格納されている要素の総数をint型の整数として返します。 StackクラスのCountプロパティとは StackはLIFO(Last In First Out:後入れ先出し)方式のコレクションであり、Pushメソッドで要素を追加し、Popメソッドで要素を取り出します。Countプロパティを参照することで、その時点でスタックにいくつの要素が存在するかを簡単に把握できます。 なお、Countプロパティの取得はO(1)の計算量で行われるため、要素数が多くても高速に