/*
在每次入队列的时候,只要将队列头部的元素(除了最后一个元素外)重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。
比如 入队 1 2 3
1 2 除最后一个元素外移动顺序 2 1
入队 3
2 1 3
除最后一个元素外,移动顺序 3 2 1
*/
class MyStack {
public:
MyStack() {
}
queue<int> que;
void push(int x) {
que.push(x);
//下面que的size是一个固定的值,出了一个值又入了一个值
for(int i = 0; i < que.size() - 1; i++)
{
que.push(que.front());
que.pop();
}
}
int pop() {
int num = top();
que.pop();
return num;
}
int top() {
return que.front();
}
bool empty() {
return que.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();
*/
225. 用队列实现栈
最新推荐文章于 2024-07-22 22:58:19 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)