队列实现栈,栈实现队列
程序员文章站
2024-03-18 11:39:04
...
/**
* 栈实现队列
* 全部进入另一个
*/
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();
}
}
上一篇: Java加密简单了解
下一篇: 简单了解Java