232.两个栈
class MyQueue {
public:
stack<int> stkIn;
stack<int> stkOut;
MyQueue() {
}
void push(int x) {
stkIn.push(x);
}
int pop() {
if(!stkOut.empty()){
int tmp=stkOut.top();
stkOut.pop();
return tmp;
}
while(!stkIn.empty()){
stkOut.push(stkIn.top());
stkIn.pop();
}
int tmp=stkOut.top();
stkOut.pop();
return tmp;
}
int peek() {
int tmp=pop();
stkOut.push(tmp);
return tmp;
}
bool empty() {
if(stkIn.empty() && stkOut.empty()){
return true;
}else{
return false;
}
}
};
225.一个队列实现栈,我其实一直没想到c++的queue竟然有back()
class MyStack {
public:
queue<int> que;
MyStack() {
}
void push(int x) {
que.push(x);
}
int pop() {
int Wsize=que.size()-1;
while(Wsize--){
que.push(que.front());
que.pop();
}
int tmp=que.front();
que.pop();
return tmp;
}
int top() {
return que.back();
}
bool empty() {
return que.empty();
}
};