A stack is a data structure with two main operations that are simple in concept. One is the `push`

operation that lets you put data into the data structure and the other is the `pop`

operation that lets you get data out of the structure.

Why do we call it a stack? Think about a stack of boxes. When you stack boxes, you can do one of two things: put boxes onto the stack and take boxes off of the stack. And here is the key. You can only put boxes on the top of the stack, and you can only take boxes off the top of the stack. That’s how stacks work in programming as well!

A stack is what we call a “Last In First Out”, or **LIFO**, data structure. That means that when we `pop`

a piece of data off the stack, we get the last piece of data we put on the stack.