Stack
Stack is a data structure that uses a LIFO (last-in first-out) upon which the following operations are supported:
- push(object): add object on the top of the stack O(1)
- pop(): remove the object which on the top of the stack O(1)
- peek(): return object which is on the top of the stack O(1)
A stack can be used to implement recursive algorithm iteratively.