Since Queue is FIFO but Stack is FILO. If we need to use Stack to implement a Queue, we need to use at least two Stacks. So we use one stack which only handle Push operations, and another Stack which only handle Pop/Peek operations. And we move elements from the Pop only Stack to the other one when Pop/Peek get called. It will reverse the FILO stack elements sequence after that. So we get a FIFO sequence.