一:题目
二:上码
class MyQueue {
public:/**思路:1.设置两个栈,一个In,一个out,2.模拟入队的话 其实就是 往栈中添加元素3.模拟出队的话,那么是先进先出的 ,我们需要将in中的元素 导入到 out 中,然后出队的话其实也就是 out栈中的栈顶元素。*/stack<int>stIn;stack<int>stOut;MyQueue() {}void push(int x) {stIn.push(x);}//将in中的元素导入到out中 然后 将out中的首元素pop了int pop() {if (stOut.empty()) {//只有当out栈为空的时候才可以导入while (!stIn.empty()) {int nums = stIn.top();stIn.pop();stOut.push(nums);}}int nums = stOut.top();stOut.pop();return nums;}//访问队列首元素int peek() {int nums = pop();//这个是把队首元素 pop出去了stOut.push(nums);//这个再加回来return nums;}bool empty() {return stIn.empty() && stOut.empty();}
};/*** Your MyQueue object will be instantiated and called as such:* MyQueue* obj = new MyQueue();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->peek();* bool param_4 = obj->empty();*/