225. 用队列实现栈(简单)
思路
-
要使用一个队列来实现栈的功能。 具体来说,实现了以下几个方法:
- push(int x):将元素 x 入栈,即将元素 x 插入到队列的末尾。
- pop():弹出栈顶元素,即将队列中除了最后一个元素外的其他元素依次弹出并重新入队,然后返回最后一个元素。
- top():获取栈顶元素,即将队列中的元素依次弹出并重新入队,然后返回最后一个元素。
- empty():判断栈是否为空,即判断队列是否为空。
代码
class MyStack {
public:
queue<int> inQueue;
MyStack() {
}
void push(int x) {
inQueue.push(x);
}
int pop() {
int cnt = inQueue.size() - 1;
// int ans;
while(cnt--){
// ans = inQueue.front();
inQueue.push(inQueue.front());
inQueue.pop();
}
int ans = inQueue.front();
inQueue.pop();
return ans;
}
int top() {
int cnt = inQueue.size();
int ans;
while(cnt--){
ans = inQueue.front();
inQueue.pop();
inQueue.push(ans);
}
return ans;
}
bool empty() {
return inQueue.empty();
}
};
/**
* Your MyStack object will be instantiated and called as such:
* MyStack* obj = new MyStack();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->top();
* bool param_4 = obj->empty();
*/