如何利用两个堆栈来模拟一个队列

假设2个堆栈A,B。
当有 n 个数据 push 到 A 时,马上 pop 并 push 到 B。这是从 B pop 出来的就是队列顺序。但如果 B 中的数据没有全部出 pop,这时 push 到 A 中的数据保留不变。一旦 B 中的数据全部 pop 之后,这把 A 中的数据 pop 出来,并 push 到 B 中。