Stack

Stack<T>
Stos to typ kolekcji z zachowaniem Last-In-First-Out (LIFO). Ostatni przyszedł pierwszy wyszedł. To tutaj następny element, który chcemy przetworzyć, to ostatni element, który umieściliśmy w kolekcji.
Ze stosu pobieramy zawsze ostatni element.

Często stosujemy stos w scenariuszach, w których musimy zapewnić użytkownikowi możliwość powrotu. Pomyśl o swojej przeglądarce. Podczas przechodzenia do różnych stron internetowych odwiedzane adresy są umieszczane na stosie. Następnie, po kliknięciu przycisku Wstecz, element na stosie (który reprezentuje aktualny adres w przeglądarce) jest wyskakujący i teraz możemy uzyskać ostatni odwiedzony adres z elementu na stosie. Funkcja cofania w aplikacjach jest również implementowana przy użyciu stosu.

Oto jak możesz użyć stosu w C #:

var stack = new Stack<string>();
             
// Pchaj element na stos
stack.Push("http://www.dev-hobby.pl");
 
// Sprawdź, czy stos zawiera dany element
var contains = stack.Contains("http://www.dev-hobby.pl");
 
// Usuń i zwróć element ze stosu
var top = stack.Pop();
 
// Podejrzyj przedmiot na wierzchu stosu, nie usuwając go
var top = stack.Peek();
 
// Uzyskaj liczbę elementów na stosie
var count = stack.Count;
 
//Usuń wszystkie elementy ze stosu 
stack.Clear();

Wewnętrznie stos jest implementowany za pomocą tablicy. Ponieważ tablice w języku C# mają stały rozmiar, w miarę jak wpychasz elementy do stosu, może być konieczne zwiększenie jego pojemności przez ponowne przydzielenie większej tablicy i skopiowanie istniejących elementów do nowej tablicy. Jeśli wymagana jest ponowna alokacja, zakładając, że stos zawiera n elementów, wszystkie te elementy należy skopiować do nowej tablicy.

1 comment

  1. I believe this is among the most significant info for me.

    And I’m glad studying your article.
    However should statement
    on some general issues, The website style is great, the
    articles is actually nice : D.
    Good activity, cheers

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *