原题链接:https://leetcode-cn.com/problems/implement-stack-using-queues/
用队列实现栈代码如下:
//用队列实现栈
class MyStack {
public:
queue<int> q; // 成员变量
/*将元素x推入堆栈。*/
void push(int x) {
q.push(x);
}
/*删除堆栈顶部的元素并返回该元素。*/
int pop() {
int size = q.size() - 1;
for (int i = 0; i < size; i++) {
int data = q.front();
q.pop();
q.push(data);
}
int d = q.front();
q.pop();
return d;
}
/*获取顶部元素。*/
int top() {
int size = q.size() - 1;
for (int i = 0; i < size; i++) {
int data = q.front();
q.pop();
q.push(data);
}
int d = q.front();
q.pop();
q.push(d);
return d;
}
/*返回堆栈是否为空*/
bool empty() {
return q.empty();
}
};