C#-Stack mit Push- und Pop-Beispielen
Was ist Stack in C#?
Der Stapel ist eine Sonderfallsammlung, die ein Last-In-First-Out-Konzept (LIFO) darstellt. Um LIFO zunächst zu verstehen, nehmen wir ein Beispiel. Stellen Sie sich einen Stapel Bücher vor, wobei jedes Buch übereinander liegt.
Das Prinzip „Last in first out“ bei Büchern bedeutet, dass nur das oberste Buch aus dem Bücherstapel entnommen werden kann. Es ist nicht möglich, ein Buch dazwischen zu entnehmen, da dies die Ausrichtung des Stapels stören würde.
Also in C#funktioniert der Stapel auf die gleiche Weise. Elemente werden dem Stapel übereinander hinzugefügt. Der Vorgang des Hinzufügens eines Elements zum Stapel wird als Push-Operation bezeichnet. Um ein Element aus einem Stapel zu entfernen, können Sie auch das oberste Element des Stapels entfernen. Diese Operation wird als Pop bezeichnet.
Sehen wir uns die für die Stack-Sammlung verfügbaren Operationen genauer an.
Deklaration des Stapels
Mit Hilfe des Stack-Datentyps wird ein Stack erstellt. Das Schlüsselwort „new“ wird verwendet, um ein Objekt eines Stacks zu erstellen. Das Objekt wird dann der Variablen st zugewiesen.
Stack st = new Stack()
Elemente zum Stapel hinzufügen
Die Push-Methode wird verwendet, um ein Element zum Stapel hinzuzufügen. Die allgemeine Syntax der Anweisung ist unten angegeben.
Stack.push(element)
Elemente aus dem Stapel entfernen
Die Pop-Methode wird verwendet, um ein Element vom Stapel zu entfernen. Die Pop-Operation gibt das oberste Element des Stapels zurück. Die allgemeine Syntax der Anweisung ist unten angegeben
Stack.pop()
Zu Zählen
Diese Eigenschaft wird verwendet, um die Anzahl der Elemente im Stapel abzurufen. Nachfolgend finden Sie die allgemeine Syntax dieser Anweisung.
Stack.Count
Enthält
Diese Methode wird verwendet, um festzustellen, ob ein Element im Stack vorhanden ist. Nachfolgend finden Sie die allgemeine Syntax dieser Anweisung. Die Anweisung gibt „true“ zurück, wenn das Element existiert, andernfalls gibt sie den Wert „false“ zurück.
Stack.Contains(element)
Sehen wir uns nun an, wie dies auf Codeebene funktioniert. Der gesamte unten genannte Code wird in unsere geschrieben Konsolenanwendung. Der Code wird in unsere Program.cs-Datei geschrieben.
Im folgenden Programm schreiben wir den Code, um zu sehen, wie wir die oben genannten Methoden verwenden können.
Beispiel 1: Stack.Push()-Methode
In diesem Beispiel werden wir sehen
- Wie ein Stapel erstellt wird.
- So zeigen Sie die Elemente des Stapels an und verwenden die Methoden Count und 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(); } } }
Code-Erklärung:-
- Der erste Schritt dient der Deklaration des Stacks. Hier deklarieren wir „st“ als Variable, um die Elemente unseres Stapels zu speichern.
- Als nächstes fügen wir 3 Elemente zu unserem Stapel hinzu. Jedes Element wird über die Push-Methode hinzugefügt.
- Da auf die Stapelelemente nicht über die Indexposition zugegriffen werden kann, ist dies nicht der Fall Anordnungsliste, müssen wir einen anderen Ansatz verwenden, um die Elemente des Stapels anzuzeigen. Das Objekt (obj) ist eine temporäre Variable, die zum Halten jedes Elements des Stapels deklariert wird. Anschließend verwenden wir die foreach-Anweisung, um jedes Element des Stapels durchzugehen. Für jedes Stapelelement wird der Wert der Variablen obj zugewiesen. Anschließend verwenden wir den Befehl Console.Writeline, um den Wert auf der Konsole anzuzeigen.
- Wir verwenden die Count-Eigenschaft (st.count), um die Anzahl der Elemente im Stapel zu ermitteln. Diese Eigenschaft gibt eine Zahl zurück. Diesen Wert zeigen wir dann auf der Konsole an.
- Anschließend verwenden wir die Methode „Contains“, um zu prüfen, ob der Wert 3 in unserem Stapel vorhanden ist. Dies gibt entweder einen wahren oder einen falschen Wert zurück. Diesen Rückgabewert zeigen wir dann auf der Konsole an.
Wenn der obige Code richtig eingegeben und das Programm ausgeführt wird, wird die folgende Ausgabe angezeigt.
Ausgang:
Aus der Ausgabe können wir ersehen, dass die Elemente des Stapels angezeigt werden. Außerdem wird der Wert True angezeigt, um anzuzeigen, dass der Wert 3 auf dem Stapel definiert ist.
Hinweis: Sie haben bemerkt, dass das letzte auf den Stapel geschobene Element zuerst angezeigt wird. Dies ist das oberste Element des Stapels. Die Anzahl der Stapelelemente wird auch in der Ausgabe angezeigt.
Beispiel 2: Stack.Pop()-Methode
Schauen wir uns nun die Funktion „Entfernen“ an. Wir werden den Code sehen, der erforderlich ist, um das oberste Element vom Stapel zu entfernen.
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(); } } }
Code-Erklärung:-
- Hier geben wir lediglich die Pop-Methode aus, mit der ein Element aus dem Stapel entfernt wird.
Wenn der obige Code richtig eingegeben und das Programm ausgeführt wird, wird die folgende Ausgabe angezeigt.
Ausgang:
Wir können sehen, dass das Element 3 vom Stapel entfernt wurde.
Zusammenfassung
- Ein Stapel basiert auf dem Last-In-First-Out-Konzept. Der Vorgang, ein Element zum Stapel hinzuzufügen, wird als Push-Vorgang bezeichnet. Der Vorgang, ein Element vom Stapel zu entfernen, wird als Pop-Vorgang bezeichnet.