Co to jest stos w C #?
Stos jest specjalną kolekcją przypadków, która reprezentuje koncepcję Last in First Out (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 „last in first out” w przypadku książek oznacza, że ze stosu można usunąć tylko książkę znajdującą się najwyżej na wierzchu. Nie ma możliwości wyjęcia książki spomiędzy, bo wtedy zakłóciłoby to ustawienie stosu.
Dlatego w C # stos działa również w ten sam sposób. Elementy są dodawane do stosu, jeden na drugim. Proces dodawania elementu do stosu nazywa się operacją wypychania. Aby usunąć element ze stosu, możesz również usunąć najwyższy element stosu. Ta operacja jest znana jako pop.
Przyjrzyjmy się bardziej szczegółowo operacjom dostępnym dla kolekcji Stack.
Deklaracja stosu
Stos jest tworzony za pomocą typu Stack Data. Słowo kluczowe „nowy” służy do tworzenia obiektu stosu. Obiekt jest następnie przypisywany do zmiennej st.
Stack st = new Stack()
Dodawanie elementów do stosu
Metoda wypychania służy do dodawania elementu na stosie. Ogólna składnia instrukcji jest podana poniżej.
Stack.push(element)
Usuwanie elementów ze stosu
Metoda pop służy do usunięcia elementu ze stosu. Operacja pop zwróci najwyższy element stosu. Ogólna składnia instrukcji jest podana poniżej
Stack.pop()
Liczyć
Ta właściwość służy do pobierania liczby elementów w stosie. Poniżej znajduje się ogólna składnia tego stwierdzenia.
Stack.Count
Zawiera
Ta metoda służy do sprawdzania, czy element jest obecny w 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 naszej aplikacji konsolowej. Kod zostanie zapisany w naszym pliku Program.cs.
W poniższym programie napiszemy kod, aby zobaczyć, jak możemy wykorzystać wyżej wymienione metody.
Przykład 1
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();}}}
Objaś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 jest dodawany metodą Push.
- Ponieważ do elementów stosu nie można uzyskać dostępu za pośrednictwem pozycji indeksu, takiej jak lista tablic, musimy zastosować inne podejście do wyświetlania elementów stosu. Object (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 przypisywana do zmiennej obj. Następnie używamy polecenia Console.Writeline, aby wyświetlić wartość w konsoli.
- Używamy właściwości Count ( st.count ), aby uzyskać liczbę elementów w stosie. Ta właściwość zwróci liczbę. Następnie wyświetlamy tę wartość w konsoli.
- Następnie używamy metody Contains, aby sprawdzić, czy wartość 3 jest obecna na naszym stosie. To zwróci wartość true lub false. Następnie wyświetlamy tę wartość zwracaną w konsoli.
Jeśli powyższy kod zostanie wpisany poprawnie i program zostanie uruchomiony, wyświetlone zostanie następujące wyjście.
Wynik:
Na podstawie danych wyjściowych widać, że wyświetlane są elementy stosu. Wyświetlana jest również wartość True, co oznacza, że na stosie zdefiniowano wartość 3.
Uwaga : Zauważyłeś, że ostatni element umieszczony na stosie jest wyświetlany jako pierwszy. To najwyższy element stosu. Liczba elementów stosu jest również wyświetlana w danych wyjściowych.
Przykład 2
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();}}}
Objaś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świetlone zostanie następujące wyjście.
Wynik:
Widzimy, że element 3 został usunięty ze stosu.
Podsumowanie
- Stos jest oparty na koncepcji „ostatnie weszło, pierwsze wyszło”. Operacja dodawania elementu do stosu nazywana jest operacją wypychania. Operacja usuwania elementu ze stosu nazywana jest operacją wyskakującą.