Под стэком я подразумеваю некий контейнер, в который могут добавляться объекты, но удалятся могут только в обратном порядке.

Пример: мы добавляем в стэк три объекта(A,B,C), если нам нужно будет удалить объект B, то сначала мы удаляем объект C, а потом уже объект B.
Я написал класс, стэк. Теперь, посмотрим, какие задачи можно решить с помощью стека.
Допустим, что в математическом выражении встречаются скобки трех типов: круглые «()», квадратные «[]» и фигурные «{}». Необходимо проверить, выполняется ли баланс скобок, учитывая, что закрывающая скобка должна быть того же типа, что и предшествующая открывающая.
Вот наше выражение {x+(y-[a+b])*c-[(d+e)]}/(h-(j-(k-[1-n])))
Мы проходим строку, если видим открывающую скобку любого типа(угловую, квадратную, круглую), то заносим её в стэк. Как только мы видим закрывающую скобку любого типа, то смотрим, если в стеке последний элемент другого типа, то в выражении скобки расставлены неправильно, а если того же типа, то продолжаем исследовать строку. Надеюсь ясно) Вот реализованный примерчиг.
P.S. Это такое маленькое введение) В следующих частях поговорим про списки(однонаправленные, двунаправленные), графы(Алгоритм Дейкстры, поиск в ширину, поиск в глубину)
