Выделяют специальные ограниченные по допустимым операциям разновидности списка, которые часто используются в алгоритмах.
*Стеком* называют такой список, в котором можно удалить только последний элемент, а новый элемент добавить только в его конец.
Последний элемент называют *вершиной* стека, поскольку стек обычно изображают на рисунках
как стопку книг. Принципом работы стека является
"последним вошел, первым вышел" ("last-in-first-out", или LIFO), поскольку первым
из стека всегда удаляется элемент, добавленный в него последним. Нельзя выдернуть книгу из середины стопки, или добавить в середину новую.
* на основе [массива](/viz/stack.html) (фиксированного или переменного размера)
* на основе [односвязного списка](/viz/stack1.html)
* на основе дека (по умолчанию в STL)