Stacks
To begin, let’s talk about a stack. It is a data structure that allows you to add a new element only at the top (referred to as a push operation) and to get an element only by removing it from the top (a pop operation). For this reason, a stack is consistent with the LIFO principle, which stands for Last-In First-Out.
Imagine a stack
If you want to better visualize a stack, let’s close the book for a moment, go to the kitchen, and take a look at a pile of plates, each placed on top of the other. You can only add a new plate to the top of the pile, and you can only get a plate from the top of the pile. You cannot remove the seventh plate without taking the previous six from the top, and you cannot add a plate to the middle of the pile. So, the last added plate (last-in) will be removed from the pile first (first-out). And do not even try to get a plate from the middle of the pile, as you don’t want to break plates! The stack operates similarly. It allows...