队列:先进先出,后进后出
栈:先进后出,后进先出
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
int node;
//两个栈都为空的情况省略
//新加入的值可以先存在栈1中,等到栈2的数据清空后再移动-形队列,后进后出
while(!stack2.empty()){
return stack2.pop();
}
while(!stack1.empty()){
stack2.push(stack1.pop());
}
node = stack2.pop();
return node;
}
public static void main(String[] args){
int[] s = new int[]{1,2,3,4,5,6,7};
Solution exp = new Solution();
for(int i=0;i<7;i++){
exp.push(s[i]);
}
for(int i=0;i<7;i++){
System.out.println(exp.pop());
}
}
}