Version A:
button:
enqueue in queue1
pop:
while the size of queue1 is greater than 1, overloaded objects from queue1 to queue2 dequeue and return the last element of queue1, then switch the names queue1 and queue2
Version B:
button:
enqueue queue2
enqueue queue1 queue2, queue1 queue2
:
deqeue from queue1