232栈实现队列
class MyQueue {
public:
stack<int>stin;
stack<int>stout;
MyQueue()
{
}
void push(int x) {
stin.push(x);
}
int pop() {
if(stout.empty())
{
while(!stin.empty())
{
auto temp=stin.top();
stin.pop();
stout.push(temp);
}
}
auto res=stout.top();
stout.pop();
return res;
}
int peek() {
int res=this->pop();
stout.push(res);
return res;
}
bool empty() {
return stout.empty()&&stin.empty();
}
};
225队列实现栈
class MyStack {
public:
queue<int>que1;
queue<int>que2;
MyStack() {
}
void push(int x) {
que1.push(x);
}
int pop() {
int size=que1.size();
size--;
while(size--)
{
que2.push(que1.front());
que1.pop();
}
int result = que1.front();
que1.pop();
que1=que2;
while (!que2.empty()) que2.pop();
return result;
}
int top() {
return que1.back();
}
bool empty() {
return que1.empty();
}
};