不难理解,题干如下:
代码如下:
class MyStack {
public:
queue<int> q;
MyStack() {
}
void push(int x) {
q.push(x);
}
int pop() {
int size = q.size();
size--;
while(size--){
q.push(q.front());
q.pop();
}
int res = q.front();
q.pop();
return res;
}
int top() {
return q.back();
}
bool empty() {
return q.empty();
}
};
要点:①栈只有一个口,兼具出入功能;队列有两个口分别负责入和出,一个只能入,一个只能出。
②入口被认为是队列尾部,出口被认为是队列前部。
③pop()、front()、back()方法都是直接锁定唯一值的,不需要再括号里声明操作对象。