Стековете са обща елементарна структура от данни, която прилага политика "Последен влязъл - първи излязъл" (LIFO). Това означава, че последният елемент, вмъкнат в стека, ще бъде първият елемент, който ще бъде премахнат.

Интерфейсът на стекове е подобен на този на списък, но стековете позволяват само операции за добавяне и изскачане (т.е. само добавяне и премахване от края на списък). По отношение на ефективността, за разлика от списъка, стекът не предлага достъп за постоянно време (O(1) време) до i-тия елемент, но позволява добавяне и премахване за постоянно време (тъй като не се изисква преместване на елементи).

Въпреки че има много начини за внедряване на стек, примерът по-долу създава нов клас и имплементира операциите на стека като методи на този клас. За да опростим допълнително нещата, ще използваме списък като наш механизъм за съхранение на стекове. Сега без повече или направете,

Разглеждайки горната реализация, стековете са сравнително прости структури от данни, които са особено полезни в рекурсивни алгоритми, където временните данни могат да се съхраняват, докато рекурсирате, но след това се премахват, когато се върнете назад. Често срещан пример за това е стека за повиквания.