Stek LIFO prinsipi ilə işləyir: ən son qoyulan ən əvvəl çıxır. Üç əsas əməliyyat — push, pop, peek — yalnız yuxarı ilə işləyir və O(1)-dir. Bu, ADT nümunəsidir; onu müxtəlif strukturlarda reallaşdırmaq olar.
list üzərində stek
Python-da ən sadə stek list-dir: append yuxarıya qoyur, pop() götürür. Yuxarı — siyahının sonudur, çünki əvvəldəki insert(0, x) / pop(0) bütün elementləri sürüşdürür (O(n)). list tutumu tükənəndə böyüdülür, ona görə push yalnız amortizə O(1)-dir (amortizə təhlili). Boş stekdə pop və peek IndexError atmalıdır: səssiz None səhvi gizlədir.
class Stack:
def __init__(self):
self._items = []
def push(self, item):
self._items.append(item)
def pop(self):
if not self._items:
raise IndexError("pop from empty stack")
return self._items.pop()
def peek(self):
if not self._items:
raise IndexError("peek at empty stack")
return self._items[-1]