215
правок
Изменения
Стек
,→На списке
NewHead.next = OldHead
head = NewHead
'''integer''' pop():
'''int''' element = OldHead.data
head = OldHead.next
'''return''' element
В реализации на списке, кроме самих данных, хранятся указатели на следующие элементы, которых столько же, сколько и элементов, то есть, так же $n$. Стоит заметить, что, хотя общая оценка затрачиваемой памяти $O(n)$, в ней скрыта бóльшая константа, и реализация на списке требует несколько больше памяти.
</wikitex>
===На саморасширяющемся массиве===
<wikitex>Возможна реализация стека на [[Саморасширяющийся_массив|векторе]]. Для этого нужно создать вектор и определить операции стека на нём. В функции <math> \mathrm {push} </math> Перед тем, как добавить новый элемент, будем проверять, не нужно ли расширить массив вдвое, а в <math> \mathrm {pop} </math>, перед тем, как изъять элемент из массива, {{---}} не нужно ли вдвое сузить размер вектора. Ниже приведён пример реализации на векторе.