A LIFO (Last In, First Out) data structure.
| Operation | Big O |
|---|---|
| Push | O(1) amortized |
| Pop | O(1) |
| Peek | O(1) |
Space complexity: O(n)
PUSH(stack, item):
APPEND item to stack.items
POP(stack):
IF stack.items is empty
RETURN nil, false
item = LAST element of stack.items
REMOVE last element from stack.items
RETURN item, true
PEEK(stack):
IF stack.items is empty
RETURN nil, false
RETURN LAST element of stack.items, true