用队列实现栈知识点
代码实现:
import java.util.LinkedList;
import java.util.Queue;
public class MyStackDemo {
public Queue<Integer> queue;
public MyStackDemo(){
queue = new LinkedList<Integer>();
}
//将元素x推到栈
public void push(int x){
queue.add(x);
int size = queue.size();
//x-->1在java中,先比较(x--)是否大于1,再让x=x-1,如果是--x>1,就是先让x=x-1,再比较现在的x值是否大于1。
while(size-- > 1){
//先把队列的队头元素取出来,重新入队,直到最后一个队列的队尾元素(它就是重新排队后的队头元素)。
queue.add(queue.poll());
}
}
//删除栈顶部的元素
public void pop(){
queue.poll();
}
//获取栈顶的元素
public int top(){
return queue.peek();//queue.element();这段也可以这样写
}
//返回栈是否为空
public boolean isEmpty(){
if(queue.size()==0){
return true;
}
return false;
//return queue.size()==0;
}
}
后续如有更优的方法,会继续补充。