215
правок
Изменения
Стек
,→На массиве
Для стека с <tex>n</tex> элементами требуется <tex>O(n)</tex> памяти, так как она нужна лишь для хранения самих элементов.
===На массиве===
Стек состоит из элементов <tex>s[1..s.top]</tex>, где <tex>s[1]</tex> {{---}} элемент на дне стека, а <tex>s[s.top]</tex> {{---}} элемент на его вершине.
Если <tex>s.top = 0</tex>, то стек не содержит ни одного элемента и является пустым <tex>(empty)</tex>. Протестировать стек на наличие в нем элементов можно с помощью операции{{---}}запроса <tex> \mathrm {stackEmpty} </tex>. Если элемент снимается с пустого стека, говорят, что он опустошается <tex>(underflow)</tex>, что обычно приводит к ошибке. Если значение <tex>s.top</tex> больше <tex>n</tex>, то стек переполняется <tex>(overflow)</tex>. (В представленном ниже псевдокоде возможное переполнение во внимание не принимается.)
Каждую операцию над стеком можно легко реализовать несколькими строками кода: