/**
* 栈实现队列
* 全部进入另一个
*/
public static class StackToQueue {
Stack<Integer> stack = new Stack<>();
Stack<Integer> temp = new Stack<>();
public void push(int n) {
stack.push(n);
}
public int poll() {
if (temp.isEmpty()) {
while (!stack.isEmpty()) {
temp.push(stack.pop());
}
}
return temp.pop();
}
public void peek() {
if (temp.isEmpty()) {
while (!stack.isEmpty()) {
temp.push(stack.pop());
}
}
temp.peek();
}
}
/**
* 队列实现栈
* 留一个
*/
public static class QueueToStack {
Queue<Integer> queue = new LinkedList<>();
Queue<Integer> temp = new LinkedList<>();
public void push(int n) {
queue.add(n);
}
public int pop() {
if(queue.size()==0){
throw new RuntimeException("stack is empty");
}
while (queue.size() > 1) {
temp.add(queue.poll());
}
int value=queue.poll();
Queue s = queue;
queue = temp;
temp = s;
return value;
}
public int peek(){
if(queue.size()==0){
throw new RuntimeException("stack is empty");
}
while (!queue.isEmpty()) {
temp.add(queue.poll());
}
int value=temp.peek();
Queue s = queue;
queue = temp;
temp = s;
return temp.peek();
}
}
队列实现栈,栈实现队列
最新推荐文章于 2022-04-29 19:42:58 发布