Stacks are specialised forms of memory where: only the top of the stack can be read (pop) and in the process it is removed from the stack new elements must be added to the top of the stack (push)