## Before Looking Up
A *Stack* is a linear data structure with dynamic sizing that follows "first in, last out" principles. Real world examples include a deck of cards or a stack of papers. Operations on a stack include
- *add*: adds an object to the top of the stack
- in an array implementation, uses an internal variable to keep track of where the top of the stack is
- *pop*: removes an object off of the top of the stack
- returns null if the stack is empty
## After Looking Up