两个队列生成一个栈
private void queueToStarkPush(int element){
//两个队列Q1和Q2,哪个不为空塞哪个,如果两个都为空,则塞Q1
if(queue1.size() == 0 && queue2.size() == 0){
queue1.add(element);
}
if(queue1.size() > 0){
queue1.add(element);
}
if(queue2.size() > 0){
queue2.add(element);
}
}
private int queueToStackPoP(){
//两个队列Q1和Q2,哪个为空,则从“另个不为空的队列”中取出“除最后一个外的所有元素”存入“为空的队列”
if(queue2.size() == 0){
while (queue1.size() > 1){
queue2.add(queue1.remove());
}
return queue1.remove();
}
if(queue1.size() == 0){
while (queue2.size() > 1){
queue1.add(queue2.remove());
}
return queue2.remove();
}
return 0;
}
两个栈生成一个队列
private void stackToQueueAdd(Integer element){
//两个栈S1和S2,恒定插入S1
stack1.push(element);
}
private int stackToQueueRemove(){
//两个栈S1和S2,若S2为空,则将S1的元素全部压入S2,然后删除S2首元素
if(stack2.empty()){
while (!stack1.empty()){
stack2.push(stack1.pop());
}
}
//若S2不为空,则删除S2首元素
return stack2.pop();
}