题目:用两个栈实现队列
实现思路:
创建连个栈对象,分别命名为栈1和栈2,一个用来添加元素,一个用来弹出元素;
首先将元素添加到栈1中,当需要弹出元素时,将栈1中的元素弹出放到栈2中,再将栈2中的元素弹出,即可实现先进先出的队列结构;
import java.util.Stack;
/**
* @Auther: ylei
* @Date: 2021-06-16 15:18
* @Description: 两个栈实现队列
*/
public class CQueue {
Stack<Integer> stack1;
Stack<Integer> stack2;
public CQueue() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}
public void appendTail(int value) {
stack1.add(value);
}
public int deleteHead() {
if(stack2.isEmpty()){
if(stack1.isEmpty()){
return -1;
}else{
while (!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
}
return stack2.pop();
}
}