Queue from two stacks, and stack from one queue =============================================== QueueViaStacks (stacks shown top first) enqueue(1) in=[1] out=[] enqueue(2) in=[2, 1] out=[] enqueue(3) in=[3, 2, 1] out=[] dequeue() = 1 in=[] out=[2, 3] transfers so far: 3 enqueue(4) in=[4] out=[2, 3] dequeue() x3 = 2, 3, 4 in=[] out=[] transfers so far: 4 StackViaQueue push(1) queue(front=top)=[1] rotations so far: 0 push(2) queue(front=top)=[2, 1] rotations so far: 1 push(3) queue(front=top)=[3, 2, 1] rotations so far: 3 pop() x2 = 3, 2 queue(front=top)=[1]