题目来自《剑指offer》
用两个栈实现一个队列,实现尾插和头删的功能。
基于两个数据结构的特点,不难思考出两者的交互方式。
下面以一张图说明:
代码实现
static final Stack<Integer> stack1 = new Stack<>();
static final Stack<Integer> stack2 = new Stack<>();
// 尾插
private static void appendTail(Integer i){
stack1.push(i);
}
//头删
private static void deleteHead(){
if(stack2.empty()){
while (!stack1.empty()){
stack2.push(stack1.peek());
stack1.pop();
}
}
if(!stack2.empty()){
stack2.pop();
}
}