Стек: различия между версиями
Материал из Algocode wiki
Глеб (обсуждение | вклад) |
Глеб (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$: | Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$: | ||
− | * push(x) - положить элемент x в конец стека | + | * <code>push(x)</code> - положить элемент x в конец стека |
− | * pop() - снять и вернуть элемент, лежащий в конце стека | + | * <code>pop()</code> - снять и вернуть элемент, лежащий в конце стека |
То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть. | То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть. |
Версия 14:26, 18 октября 2019
Стек
Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$:
push(x)
- положить элемент x в конец стекаpop()
- снять и вернуть элемент, лежащий в конце стека
То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть.
Часто для удобства у стека еще есть операции
size()
- размер стекаempty()
- проверка на пустотуclear()
- очистить стек
В С++ стек уже реализован,
stack<T>stack_name;
, с всеми вышеперечисленными методами.