package com.company;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
public class MyStack {
private Queue<Integer> queue;
public MyStack() {
queue = new LinkedList<>();
}
public void push(int x) {
queue.add(x);
}
//把栈顶端的值弹出来
public int pop() {
rePosition();
return queue.poll();
}
//获取栈顶端的值,但不弹出
public int top() {
rePosition();
int result=queue.poll();
queue.add(result);//原因是恢复队列刚装入数据的样子
return result;
}
public boolean empty() {
return queue.isEmpty();
}
//改变位置
public void rePosition(){
int size = queue.size();
size = size - 1;
while (size > 0) {
int value=queue.poll();//弹出
queue.offer(value);
size--;
}
}
}
package com.company;
import java.util.*;
public class Main {
public static void main(String[] args) {
MyStack stack=new MyStack();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop());//3
System.out.println(stack.pop());//2
System.out.println(stack.top());//1
}
}