Stos C# z przykładami Push & Pop
Co to jest stos w języku C#?
Stos to specjalna kolekcja przypadków, która reprezentuje koncepcję „ostatnie weszło, pierwsze wyszło” (LIFO). Aby najpierw zrozumieć LIFO, weźmy przykład. Wyobraź sobie stos książek, z których każda jest ułożona jedna na drugiej.
Koncepcja „ostatni weszło, pierwsze wyszło” w przypadku książek oznacza, że ze stosu książek można usunąć tylko książkę znajdującą się najwyżej. Nie ma możliwości usunięcia książki pomiędzy nimi, gdyż zaburzyłoby to ustawienie stosu.
Stąd w C#, stos działa w ten sam sposób. Elementy są dodawane do stosu, jeden na drugim. Proces dodawania elementu do stosu nazywa się operacją push. Aby usunąć element ze stosu, możesz również usunąć najwyższy element stosu. Operacja ta jest znana jako pop.
Przyjrzyjmy się bliżej operacjom dostępnym dla kolekcji Stack.
Deklaracja stosu
Stos tworzony jest za pomocą typu Stack Data. Słowo kluczowe „nowy” służy do tworzenia obiektu stosu. Obiekt zostaje następnie przypisany do zmiennej st.
Stack st = new Stack()
Dodawanie elementów do stosu
Metoda push służy do dodawania elementu na stos. Ogólna składnia instrukcji jest podana poniżej.
Stack.push(element)
Usuwanie elementów ze stosu
Metoda pop jest używana do usuwania elementu ze stosu. Operacja pop zwróci najwyższy element stosu. Ogólna składnia polecenia jest podana poniżej
Stack.pop()
Liczyć
Ta właściwość służy do pobierania liczby elementów na stosie. Poniżej znajduje się ogólna składnia tego stwierdzenia.
Stack.Count
zawiera
Ta metoda służy do sprawdzania, czy element znajduje się na stosie. Poniżej znajduje się ogólna składnia tego stwierdzenia. Instrukcja zwróci wartość true, jeśli element istnieje, w przeciwnym razie zwróci wartość false.
Stack.Contains(element)
Zobaczmy teraz, jak to działa na poziomie kodu. Cały poniższy kod zostanie zapisany w pliku nasz Aplikacja konsoli. Kod zostanie zapisany w naszym pliku Program.cs.
W poniższym programie napiszemy kod, aby zobaczyć, jak możemy wykorzystać powyższe metody.
Przykład 1: Metoda Stack.Push().
W tym przykładzie zobaczymy
- Jak powstaje stos.
- Jak wyświetlić elementy stosu i użyć metod Count i 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();
}
}
}
Wyjaśnienie kodu: -
- Pierwszy krok służy do zadeklarowania stosu. Tutaj deklarujemy „st” jako zmienną przechowującą elementy naszego stosu.
- Następnie dodajemy 3 elementy do naszego stosu. Każdy element dodawany jest metodą Push.
- Teraz, ponieważ nie można uzyskać dostępu do elementów stosu poprzez pozycję indeksu, np lista tablic, musimy zastosować inne podejście do wyświetlania elementów stosu. Obiekt (obj) jest zmienną tymczasową, która jest zadeklarowana do przechowywania każdego elementu stosu. Następnie używamy instrukcji foreach, aby przejść przez każdy element stosu. Dla każdego elementu stosu wartość jest przypisana do zmiennej obj. Następnie używamy polecenia Console.Writeline, aby wyświetlić wartość na konsoli.
- Używamy właściwości Count (liczba st), aby uzyskać liczbę elementów na stosie. Ta właściwość zwróci liczbę. Następnie wyświetlamy tę wartość na konsoli.
- Następnie używamy metody Zawiera, aby sprawdzić, czy na naszym stosie znajduje się wartość 3. To zwróci wartość true lub false. Następnie wyświetlamy tę zwracaną wartość na konsoli.
Jeżeli powyższy kod zostanie wpisany poprawnie i program zostanie uruchomiony, wyświetlony zostanie następujący wynik.
Wyjście:
Z wyjścia możemy zobaczyć, że elementy stosu są wyświetlane. Ponadto wyświetlana jest wartość True, aby powiedzieć, że wartość 3 jest zdefiniowana na stosie.
Note: Zauważyłeś, że ostatni element włożony na stos jest wyświetlany jako pierwszy. Jest to najwyższy element stosu. Liczba elementów stosu jest również wyświetlana w wyjściu.
Przykład 2: Metoda Stack.Pop().
Przyjrzyjmy się teraz funkcji „usuń”. Zobaczymy kod wymagany do usunięcia najwyższego elementu ze stosu.
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();
}
}
}
Wyjaśnienie kodu: -
- Tutaj po prostu wydajemy metodę pop, która służy do usuwania elementu ze stosu.
Jeżeli powyższy kod zostanie wpisany poprawnie i program zostanie uruchomiony, wyświetlony zostanie następujący wynik.
Wyjście:
Widzimy, że element 3 został usunięty ze stosu.
Podsumowanie
- Stos opiera się na koncepcji last in first out (ostatni wszedł, pierwszy wyszedł). Operacja dodawania elementu do stosu nazywana jest operacją push (wypchnięcie). Operacja usuwania elementu ze stosu nazywana jest operacją pop (pop).




