☰ Оглавление

Stack

Что такое структура данных "стек" (англ. - stack) на языке C++.

Давайте представим, что перед вами стоит цилиндр, в котором верхняя часть срезана, тем самым образуя цилиндрическую коробку. На дне этой коробки расположена пружина, а диаметр этого цилиндра равен диаметру обычных тарелок.

Кладем в нашу коробку тарелки, допустим 5 штук. И теперь вопрос: как достать 4-ю тарелку?

Правильный ответ - это вытащить три предыдущие и затем уже четвертую. Именно так работает структура данных "стек" - "первым пришел, последним ушел" или FILO (First In Last Out) . Только теперь представьте, что тарелки- это информационная, а цилиндр- это структурная части. Теперь перейдем к разновидностям стеков.

Стеки бывают двух типов:

  1. Статические
  2. Динамические

В чём их отличие?

Статический стек в отличие от динамического имеет ограниченное кол-во тарелок(информации). В этом и есть их главное различие.

Вот пример объявления статического стека:

Вот пример объявления динамического стека:

где *begin- вершина стека (первая тарелка, которую нужно вытащить) и *t - текущий указатель.

Для стеков существуют три главные операции это:

  1. Добавление
  2. Удаление
  3. Чтение

Давайте рассмотрим каждую из функций по отдельности. Начнем с чтения динамического стека:

Данной функцией, вы сможете прочитать весь ваш стек от А до Я.

Для удаления стека, вы можете воспользоваться данной функцией:

И для добавления элементов в стек можно использовать данную функцию:

Код был написан на Visual studio 2015. Надеемся, что теперь вы полностью разобрались со структурой данных stack.

×