队列和栈相互模拟
1. 用两个栈模拟一个队列
压入:向stack1压入元素
弹出:如果stack2非空就从stack2弹出,否则就弹出stack1所有元素逐个压入stack2中,然后从stack2中弹出元素。
2. 用两个队列模拟一个栈
压入:向queue1(queue2)压入元素
弹出:把queue1(queue2)元素逐个弹出并压入queue2(queue1)中直至最后一个元素,最后一个元素直接弹出
3. 用两个栈模拟双端队列
压入:向stack1压入元素
弹出:如果stack2非空就从stack2弹出,否则就弹出stack1所有元素逐个压入stack2中,然后从stack2中弹出元素。
压入:向queue1(queue2)压入元素
弹出:把queue1(queue2)元素逐个弹出并压入queue2(queue1)中直至最后一个元素,最后一个元素直接弹出