# LeetCode232:Implement Queue using Stacks

969人阅读 评论(0)

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).

runtime:0ms

class Queue {
public:
// Push element x to the back of queue.
void push(int x) {
pushStack.push(x);
}

// Removes the element from in front of queue.
void pop(void) {
peek();//这里可以使用peek进行两个栈之间元素的转移从而避免重复代码
popStack.pop();
}

// Get the front element.
int peek(void) {
if(popStack.empty())
{
while(!pushStack.empty())
{
popStack.push(pushStack.top());
pushStack.pop();
}
}
return popStack.top();
}

// Return whether the queue is empty.
bool empty(void) {
return pushStack.empty()&&popStack.empty();
}

private:
stack<int> pushStack;//数据被插入到这个栈中
stack<int> popStack;//数据从这个栈中弹出
};
0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：335108次
• 积分：6175
• 等级：
• 排名：第4161名
• 原创：261篇
• 转载：43篇
• 译文：13篇
• 评论：43条
友情链接
博客专栏
 设计模式（C++） 文章：24篇 阅读：16552
 LeetCode 文章：94篇 阅读：66366
 openGL系列教程 文章：13篇 阅读：27852
文章分类
评论排行
最新评论