不难理解,题干如下:
代码如下:
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()方法都是直接锁定唯一值的,不需要再括号里声明操作对象。