225. 用队列实现栈
class MyStack {
public:
MyStack()
: q1(queue<int>()), q2(queue<int>())
{
}
void push(int x) {
q1.push(x);
}
int pop() {
int ret;
if(q1.size() == 1){
ret = q1.front();
q1.pop();
}else{
int n = q1.size() - 1;
while(n > 0){ //将多余元素移到q2
q2.push(q1.front());
q1.pop();
--n;
}
ret = q1.front();
q1.pop();
while(!q2.empty()){ //移回q1
q1.push(q2.front());
q2.pop();
}
}
return ret;
}
int top() {
int ret;
if(q1.size() == 1){
ret = q1.front();
}else{
int n = q1.size() - 1;
while(n > 0){
q2.push(q1.front());
q1.pop();
--n;
}
ret = q1.front();
q1.pop();
q2.push(ret);
q1 = q2;
while(!q2.empty()){
q2.pop();
}
}
return ret;
}
bool empty() {
return q1.empty();
}
private:
queue<int> q1;
queue<int> q2;
};
最近学习很不顺心,感觉自己很没用,学习前端感觉也好难好难,有种学不会的感觉,但我知道还很早,路还有很远,相信自己一定可以做到的。