admin管理员组文章数量:1636922
Implement the following operations of a queue using stacks.
push(x) – Push element x to the back of queue. pop() – Removes the
element from in front of queue. peek() – Get the front element.
empty() – Return whether the queue is empty. Notes: You must use only
standard operations of a stack – which means only push to top,
peek/pop from top, size, and is empty operations are valid. Depending
on your language, stack may not be supported natively. You may
simulate a stack by using a list or deque (double-ended queue), as
long as you use only standard operations of a stack. You may assume
that all operations are valid (for example, no pop or peek operations
will be called on an empty queue).
用栈实现队列,需要两个栈,代码如下:
Solution:
Java:
class MyQueue {
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
// Push element x to the back of queue.
public void push(int x) {
stack1.push(x);
}
// Removes the element from in front of queue.
public void pop() {
if(stack1.isEmpty()) return ;
stack2.clear();
while(stack1.size() != 1) {
stack2.push(stack1.pop());
}
stack1.pop();
while(!stack2.isEmpty()) {
stack1.push(stack2.pop());
}
}
// Get the front element.
public int peek() {
if(!stack1.isEmpty()) {
stack2.clear();
while(stack1.size() != 1) {
stack2.push(stack1.pop());
}
int result = stack1.pop();
stack2.push(result);
while(!stack2.isEmpty()) {
stack1.push(stack2.pop());
}
return result;
}
return -1;
}
// Return whether the queue is empty.
public boolean empty() {
return stack1.isEmpty();
}
}
本文标签: implementQueueEasyStacks
版权声明:本文标题:232. Implement Queue using Stacks (Easy) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729235133a1191904.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论