0
点赞
收藏
分享

微信扫一扫

leetcode-232. 用栈实现队列刷题笔记(c++)


写在前面

  • 隐约可能已刷过该题?
  • 堆栈,更换易理解方法

题目详情

使用栈实现队列的下列操作:

push(x) -- 将一个元素放入队列的尾部。
pop() -- 从队列首部移除元素。
peek() -- 返回队列首部的元素。
empty() -- 返回队列是否为空。

示例:

MyQueue queue = new MyQueue();

queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false
说明:

ac代码

  • 1个类堆栈变量(2个类堆栈变量不太好理解)
  • 1个临时堆栈变量

class MyQueue
{
public:
/** Initialize your data structure here. */
MyQueue()
{

}
/** Push element x to the back of queue. */
void push(int x)
{
stack<int> p;
while(!a.empty())
{
p.push(a.top());
a.pop();
}
p.push(x);
while(!p.empty())
{
a.push(p.top());
p.pop();
}
}
/** Removes the element from in front of queue and returns that element. */
int pop()
{
int p = a.top();
a.pop();
return p;
}

/** Get the front element. */
int peek()
{
return a.top();
}

/** Returns whether the queue is empty. */
bool empty()
{
return a.empty();
}
private:
stack<int> a;
};

/**
* Your MyQueue object will be instantiated and called as such:
* MyQueue* obj = new MyQueue();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->peek();
* bool param_4 = obj->empty();
*/

  • 参考文章
  • leetcode 232. 用栈实现队列(C++)
  • 232. 用栈实现队列 leetcode c++实现. 2个堆栈变量


举报

相关推荐

0 条评论