题目链接: 使用两个栈实现队列
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
实现思路:
两个栈,命名为Stack1和Stack2,队列Quene
其中队列Quene在入队操作时,将所需要的入队元素在Stack1中进行入栈;
在出队操作时,需要将Stack1栈中的栈顶元素进行依次出栈,并入栈到Stack2中,队列弹出队时,将Stack2栈中的栈顶元素进行出栈
java代码实现:
public class AchieveQuene {
static Stack<Integer> stack1 = new Stack<Integer>();
static Stack<Integer> stack2 = new Stack<Integer>();
public static void push(int node) {
stack1.push(node);
}
public static int pop() {
if(stack2.size() == 0) {
while(!stack1.isEmpty()) {
int temp = stack1.peek();
stack2.push(temp);
stack1.pop();
}
}
int res = stack2.peek();
stack2.pop();
return res;
}
public static void main(String[] args) {
push(1);
System.out.println(pop());
push(9);
System.out.println(pop());
push(6);
push(0);
System.out.println(pop());
System.out.println(pop());
push(63);
push(55);
System.out.println(pop());
}
}