
/**
* 面试题7:两个栈实现队列
* 实现:stack1Ofadd,stack2OfDelete,用先进后出实现先进先出
* 队列新增:向stack1Ofadd插入,
* 队列删除:删除之前先判断stack2OfDelete是否为空,
* 若为空则将stack1Ofadd的数据全部导入再删除
*/
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
// 向队列添加元素
public void appendTail(int element){
// 栈1作为添加的栈
stack1.push(element);
}
// 删除队列尾部元素
public Integer deleteHead(){
if(stack2.empty()){
// 若栈2为空则把栈1的元素全部添加进栈2
while(!stack1.empty()){
stack2.push(stack1.pop());
}
}
// 执行删除任务
if(stack2.empty()){
return null;
} else {
return stack2.pop();
}
}```