用两个栈实现队列
程序员文章站
2022-07-10 20:29:23
...
两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:压入元素直接压入stack1中,删除元素时判断stack2是否为空,如果为空,则将stack1中元素取出,放入stack2中,若非空,则弹出。
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
//入队时将数据元素压入stack1中
public void push(int node) {
stack1.push(node);
}
public int pop() {
//栈stack1不为空时将栈1中的元素依次出栈并压入栈2
while(!stack1.empty()){
stack2.push(stack1.pop());
}
//将stack2栈顶元素出栈,相当于出队
int first=stack2.pop();
//如果stack2不为空,则出栈然后入栈到stack1中
while(!stack2.empty()){
stack1.push(stack2.pop());
}
return first;
}
}
上一篇: java 实现栈
下一篇: 数据结构栈---java实现