Java 求解用栈实现队列
Posted 南淮北安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 求解用栈实现队列相关的知识,希望对你有一定的参考价值。
一、题目
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
实现 MyQueue 类:
- void push(int x) 将元素 x 推到队列的末尾
- int pop() 从队列的开头移除并返回元素
- int peek() 返回队列开头的元素
- boolean empty() 如果队列为空,返回 true ;否则,返回 false
二、代码
class MyQueue {
Deque<Integer> deque1;
Deque<Integer> deque2;
/**
* Initialize your data structure here.
*/
public MyQueue() {
deque1 = new LinkedList<>();
deque2 = new LinkedList<>();
}
/**
* Push element x to the back of queue.
*/
public void push(int x) {
deque1.push(x);
}
/**
* Removes the element from in front of queue and returns that element.
*/
public int pop() {
if (deque2.isEmpty()) {
while (!deque1.isEmpty()) {
deque2.push(deque1.pop());
}
}
return deque2.pop();
}
/**
* Get the front element.
*/
public int peek() {
if (deque2.isEmpty()) {
while (!deque1.isEmpty()) {
deque2.push(deque1.pop());
}
}
return deque2.peek();
}
/**
* Returns whether the queue is empty.
*/
public boolean empty() {
return deque2.isEmpty() && deque1.isEmpty();
}
}
以上是关于Java 求解用栈实现队列的主要内容,如果未能解决你的问题,请参考以下文章
精选力扣500题 第27题 LeetCode 232. 用栈实现队列c++ / java 详细题解
用栈实现队列,用队列实现栈,最小栈,设计循环队列的Java做法
Java编程用栈来求解汉诺塔问题的代码实例(非递归)_java - JAVA