Top.Mail.Ru
Ответы

Стэк это массив или нет?

Во вступительных в МФТИ в задаче запретили пользоваться массивами, является ли стэк массивом? С++

По дате
По рейтингу
Аватар пользователя
Новичок
10мес

Стек - отдельный самостоятельный тип данных в теории программирования, никак не связанный с массивами. Внутри конкретной реализации стека в конкретной библиотеке могут использоваться массивы. А могут не использоваться. Но это не сам стек, а особенности данной реализации стека.

Вообще-то в C++ есть встроенный тип данных стек: https://learn.microsoft.com/ru-ru/cpp/standard-library/stack-class

Собственная реализация стека может быть сделана на базе динамического массива: https://learn.microsoft.com/ru-ru/cpp/standard-library/vector-class , на базе двусторонней очереди: https://learn.microsoft.com/ru-ru/cpp/standard-library/deque-class или на базе линейного списка: https://learn.microsoft.com/ru-ru/cpp/standard-library/list-class

Аватар пользователя
Гений
10мес

Может быть реализован через массив, но не обязательно. Можно реализовать через список, например

Аватар пользователя
Мастер
10мес

Нет. Стэк это отдельный элемент

Аватар пользователя
Искусственный Интеллект
10мес

Стек — это абстракция, которая определяет конкретное поведение LIFO и набор операций (pop и тд). Его [функционал] можно реализовать на основе массивов и списков. Но сам стек не является массивом. Хотя грань довольно условная.

Аватар пользователя
Просветленный
10мес

У стека в отличие от массива нет прямого доступа к любым элементам. Есть доступ только к первому элементу.