import java.util.LinkedList;
import java.util.Queue;
public class Stack {
Queue<Integer> q1 = new LinkedList<>();
Queue<Integer> q2 = new LinkedList<>();
public void push(Integer i){
q2.offer(i);
while(!q1.isEmpty()) {
q2.offer(q1.poll());
}
Queue<Integer> temp = q1;
q1 = q2;
q2 = temp;
}
public Integer pop(){
return q1.poll();
}
public Integer top(){
return q1.peek();
}
public Boolean isEmpty(){
return q1.isEmpty();
}
public static void main(String[] args){
Stack s1 = new Stack();
s1.push(1);
s1.push(2);
s1.push(3);
s1.push(4);
s1.push(5);
s1.push(6);
System.out.println(s1.pop());
System.out.println(s1.pop());
System.out.println(s1.pop());
System.out.println(s1.top());
System.out.println(s1.pop());
System.out.println(s1.pop());
System.out.println(s1.pop());
}
}
核心思想
在queue2添加元素之后,把queue1的元素添加到queue2,此时queue2的输出相当于栈,让queue1 = 让queue2 ,让q2=原来的q1,即空