Stos
W informatyce stos to struktura danych służąca do przechowywania kolekcji obiektów. Poszczególne elementy można dodawać do stosu i przechowywać na nim za pomocą operacji push. Obiekty można pobierać za pomocą operacji pop, która usuwa element ze stosu.
Gdy obiekt zostaje dodany do stosu, jest umieszczany na górze wszystkich wcześniej dodanych elementów. Gdy element jest usuwany, można go usunąć z góry lub z dołu stosu. Stos, z którego elementy są usuwane od góry, nazywa się stosem „LIFO” (Last In, First Out). Stos LIFO można wyobrazić sobie jako talię kart, na której układa się pojedyncze karty, a następnie dobiera je od góry. W stosie „FIFO” (First In, First Out) elementy są usuwane od dołu. Stos FIFO można wyobrazić sobie jako rząd w automacie, z którego elementy są wydawane w kolejności, w jakiej zostały umieszczone w automacie.
Stosy mają wiele zastosowań w programowaniu komputerowym. Stosy LIFO mogą na przykład służyć do pobierania ostatnio używanych obiektów z pamięci podręcznej. Stosy FIFO mogą być używane do zapewnienia pobierania danych w kolejności, w jakiej zostały wprowadzone, co może służyć do przetwarzania danych w kolejce.
Chociaż stosy są często używane przez programistów, zazwyczaj nie zauważysz ich podczas korzystania z programu. Dzieje się tak dlatego, że tworzenie stosów oraz wykonywanie operacji push i pop odbywa się w tle podczas działania aplikacji i nie jest widoczne dla użytkownika. Jeśli jednak stosowi zabraknie pamięci, spowoduje to „przepełnienie stosu”. Jeśli program nie obsłuży go prawidłowo, przepełnienie stosu może wygenerować komunikat o błędzie lub spowodować awarię programu.
NOTE: Termin „stos” może również oznaczać stos protokołów, który składa się z wielu współpracujących ze sobą protokołów sieciowych. Każdy protokół jest przypisany do jednej z siedmiu różnych warstw określonych w modelu OSI.
Sprawdź swoją wiedzę