Spisu treści:
Definicja - Co oznacza Stack?
Stos jest strukturą koncepcyjną składającą się z zestawu jednorodnych elementów i opiera się na zasadzie „kto pierwszy, ten pierwszy” (LIFO). Jest to powszechnie używany abstrakcyjny typ danych z dwiema głównymi operacjami, mianowicie push i pop. Push i pop są wykonywane na najwyższym elemencie, który jest ostatnio dodawany do stosu. Operacja wypychania dodaje element do stosu, podczas gdy operacja pop usuwa element z górnej pozycji. Koncepcja stosu jest używana w programowaniu i organizacji pamięci w komputerach.
Techopedia wyjaśnia Stack
Stos reprezentuje sekwencję obiektów lub elementów w formacie liniowej struktury danych. Stos składa się z ograniczonego dna, a wszystkie operacje są wykonywane na najwyższej pozycji. Ilekroć element jest dodawany do stosu za pomocą operacji wypychania, najwyższa wartość jest zwiększana o jeden, a gdy element jest wyskakujący ze stosu, najwyższa wartość jest zmniejszana o jeden. Wskaźnik do górnej pozycji stosu jest również znany jako wskaźnik stosu.
Stos może mieć stały rozmiar lub może mieć dynamiczną implementację, w której rozmiar może się zmieniać. W przypadku stosów o ograniczonej pojemności próba dodania elementu do już pełnego stosu powoduje wyjątek przepełnienia stosu. Podobnie stan, w którym operacja pop próbuje usunąć element z już pustego stosu, jest znany jako niedopełnienie.
Stos jest uważany za ograniczoną strukturę danych, ponieważ dozwolona jest tylko ograniczona liczba operacji. Oprócz operacji push i pop niektóre implementacje mogą pozwolić na zaawansowane operacje, takie jak:
- Peek - Zobacz najwyższy przedmiot na stosie.
- Duplikat - skopiuj wartość najwyższego elementu do zmiennej i wepchnij ją z powrotem na stos.
- Zamień - Zamień dwa najwyższe elementy na stosie.
- Obróć - Przenieś najwyższe elementy na stosie zgodnie z liczbą lub przesuń w sposób rotacyjny.
Implementacje programowe koncepcji stosu są wykonywane przy użyciu tablic i połączonych list, w których najwyższe położenie jest śledzone za pomocą odpowiednio zmiennej lub wskaźnika nagłówka. Wiele języków programowania zapewnia wbudowane funkcje wspierające implementację stosu.
Stosy sprzętowe są implementowane w celu alokacji pamięci i dostępu przy użyciu stałego źródła i rozmiaru. Rejestry stosu służą do przechowywania wartości wskaźnika stosu.



