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 + " ");
}
}
}
}
処理の流れを解説
- まずA〜Dの4文字をPushでスタックに追加します。
- foreachループでスタックの中身を表示すると、「D C B A」の順に出力されます(後入れ先出しなので逆順)。
- さらにPとQをPushした後、Peekメソッドで次に取り出される値「Q」を確認します。
- その後、Popを3回呼び出すことで、Q、P、Cが順番に取り除かれます。
- 最終的にスタックには「B A」が残ります。
このように、Stackクラスを使いこなせば、履歴管理や巻き戻し処理など、LIFO構造が必要な場面で効率的にデータを扱えます。ぜひ実際にコードを実行して、動作を確認してみてください。
-
C#のStackクラスの使い方を解説!主要メソッドとサンプルコード付き
C#におけるStackクラスは、オブジェクトを「後入れ先出し(LIFO:Last-In, First-Out)」方式で管理するコレクションを表すために使用されます。最後に追加した要素が最初に取り出される仕組みで、本を積み重ねたスタックのように、一番上に置いた本から順に取り出すイメージです。Stackクラスの主なメソッドStackクラスには、要素の操作に便利なメソッドが多数用意されています。以下に代表的なメソッドをまとめました。No.メソッドと説明1public virtual void Clear();スタックからすべての要素を削除します。2public virtual bool Contai
-
【Python】スタックを実装するプログラムの書き方とサンプルコード解説
Pythonでスタックを実装する場合は、まずスタック専用のクラスを定義し、そのインスタンスを生成します。その後、要素を追加する「プッシュ(push)」や、要素を取り出す「ポップ(pop)」を行うメソッドを定義し、インスタンスを通じてこれらのメソッドを呼び出して利用します。 スタックとは スタックは「後入れ先出し(LIFO: Last-In, First-Out)」と呼ばれるデータ構造です。最後に追加した要素が最初に取り出されるという特性を持ち、テキストエディタの元に戻す(Undo)機能や、プログラムの関数呼び出し履歴の管理など、さまざまな場面で活用されています。 サンプルコード 以下は、Py