C# スタックとプッシュおよびポップの例
C# のスタックとは何ですか?
スタックは、後入れ先出し (LIFO) の概念を表す特殊なケースのコレクションです。 まず LIFO を理解するために、例を見てみましょう。 各本が互いの上に置かれた本の山を想像してください。
本の場合の後入れ先出しの概念は、本のスタックから一番上の本だけを削除できることを意味します。 間の本を取り出すことはできません。そうすると、スタックの設置が妨げられるためです。
したがって C#スタックも同様に機能します。要素はスタックに重ねて追加されます。スタックに要素を追加するプロセスは、プッシュ操作と呼ばれます。スタックから要素を削除するには、スタックの最上位の要素を削除することもできます。この操作はポップと呼ばれます。
Stack コレクションで使用できる操作を詳しく見てみましょう。
スタックの宣言
スタックは、Stack Data タイプを使用して作成されます。 キーワード「new」は、スタックのオブジェクトを作成するために使用されます。 次に、オブジェクトは変数 st に割り当てられます。
Stack st = new Stack()
スタックへの要素の追加
Push メソッドは、要素をスタックに追加するために使用されます。 ステートメントの一般的な構文を以下に示します。
Stack.push(element)
スタックからの要素の削除
popメソッドはスタックから要素を削除するために使用されます。pop操作はスタックの最上位の要素を返します。ステートメントの一般的な構文は次のとおりです。
Stack.pop()
数量カウント
このプロパティは、スタック内のアイテムの数を取得するために使用されます。 以下は、このステートメントの一般的な構文です。
Stack.Count
含まれています
このメソッドは、要素がスタックに存在するかどうかを確認するために使用されます。 以下は、このステートメントの一般的な構文です。 このステートメントは、要素が存在する場合は true を返し、それ以外の場合は値 false を返します。
Stack.Contains(element)
次に、これがコードレベルで動作することを見てみましょう。 以下のコードはすべて、 コンソールアプリケーション。 コードは Program.cs ファイルに書き込まれます。
以下のプログラムでは、上記のメソッドをどのように使用できるかを確認するコードを記述します。
例 1: Stack.Push() メソッド
この例では、次のようになります。
- スタックの作成方法。
- スタックの要素を表示する方法、および Count メソッドと Contain メソッドを使用する方法。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the stack " +st.Count); Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3)); Console.ReadKey(); } } }
コードの説明:-
- 最初のステップはスタックを宣言するために使用されます。 ここでは、スタックの要素を保持する変数として「st」を宣言しています。
- 次に、スタックに 3 つの要素を追加します。 各要素は Push メソッドを介して追加されます。
- 現在、スタック要素にはインデックス位置を介してアクセスできないため、 配列リスト、スタックの要素を表示するには、別のアプローチを使用する必要があります。 オブジェクト (obj) は一時変数であり、スタックの各要素を保持するために宣言されます。 次に、foreach ステートメントを使用して、スタックの各要素を調べます。 各スタック要素の値は obj 変数に割り当てられます。 次に、Console.Writeline コマンドを使用して値をコンソールに表示します。
- Count プロパティ (セントカウント) スタック内のアイテムの数を取得します。 このプロパティは数値を返します。 次に、この値をコンソールに表示します。
- 次に、Contains メソッドを使用して、値 3 がスタックに存在するかどうかを確認します。 これは、true または false の値を返します。 次に、この戻り値をコンソールに表示します。
上記のコードが正しく入力され、プログラムが実行されると、次の出力が表示されます。
出力:
出力から、スタックの要素が表示されていることがわかります。また、スタックに値 3 が定義されていることを示すために、True の値が表示されています。
注意: スタックにプッシュされた最後の要素が最初に表示されることに気付いたでしょう。これがスタックの最上位の要素です。スタック要素の数も出力に表示されます。
例 2: Stack.Pop() メソッド
次に、「削除」機能を見てみましょう。 スタックから最上位の要素を削除するために必要なコードを見てみましょう。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } }
コードの説明:-
- ここでは、スタックから要素を削除するために使用される Pop メソッドを発行するだけです。
上記のコードを正しく入力してプログラムを実行すると、次の出力が表示されます。
出力:
要素 3 がスタックから削除されたことがわかります。
製品概要
- スタックは後入れ先出しの概念に基づいています。スタックに要素を追加する操作はプッシュ操作と呼ばれます。スタックから要素を削除する操作はポップ操作と呼ばれます。