2023.6.19
这题使用队列来实现栈的功能,和栈实现队列稍有不同。pop操作的实现 需要将队列1的除队尾元素之外的所有元素移到队列2中,然后返回并移除队列1剩下的元素。
下面上代码:
class MyStack {
queue<int> que1;
queue<int> que2;
public:
MyStack() {}
void push(int x) {
que1.push(x);
}
int pop() {
int size = que1.size()-1;
while(size)
{
que2.push(que1.front());
que1.pop();
size--;
}
int result = que1.front();
que1.pop();
que1 = que2;
while(!que2.empty()) que2.pop();
return result;
}
int top() {
// int size = que1.size()-1;
// while(size)
// {
// que2.push(que1.front());
// que1.pop();
// size--;
// }
// int result = que1.front();
// que2.push(que1.front());
// que1 = que2;
// while(!que2.empty()) que2.pop();
// return result;
return que1.back();
}
bool empty() {
return que1.empty();
}
};
ps:实现top操作时,可以直接使用队列的内置方法back直接查看队尾的元素。