Mental Model
Use two stacks to make a queue that adds items at one end and removes from the other, by reversing order twice.
Analogy: Imagine two trays of plates: you put plates on the first tray stacked up, then to serve, you flip all plates onto the second tray to get them in the right order to serve first-in-first-out.
stack1: top -> [5,4,3,2,1] -> bottom stack2: top -> [] -> bottom
