Stos jest to zarezerwowany obszar pamięci w którym nasz program może sobie składować/przechować "na chwilę" jakieś dane.
Stos jest strukturą typu LIFO (Last In First Out - ostatni wszedł pierwszy wyszedł).
Na strukturze zwanej stosem można wykonać dwie operacje:
- odłożyć coś na wierzchołku stosu
- zdjąć coś z wierzchołka stosu
Tyle ogólnej teorii, jak należy rozumieć "działanie" stosu?
Wyobraź sobie stół:
Kładziemy na stole książkę
Aby zdjąć ze stołu książkę w zielonej okładce nie potrzebujemy specjalnie kombinować po prostu po nią sięgamy i ją podnosimy,
lecz co w sytuacji gdy na zieloną książkę odłożymy jeszcze jakieś inne "tomiska"?
Teraz sytuacja już nie jest tak prosta, w tej chwili aby podnieść ze stołu książkę w zielonej okładce musimy najpierw zdjąć
wszystkie inne książki leżące na niej.
Na opisanej właśnie zasadzie działa stos, kolejne nowe elementy można odkładać tylko na wierzchołek stosu (na samą górę)
aby dostać się do jakiegoś elementu wewnątrz stosu musimy najpierw zdjąć wszystkie elementy leżące "na nim".