【LeetCode】232.用栈实现队列
题意:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
实现 MyQueue 类:
void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
int peek() 返回队列开头的元素
boolean empty() 如果队列为空,返回 true ;否则,返回 false
思路:用两个栈对着来,第一个栈接收入队数据,第二个栈进行出队处理。
代码:
class MyQueue {
public:
stack <int> stkIn, stkOut;
MyQueue() {
}
void push(int x) {
stkIn.push(x);
}
int pop() {
// 只有出栈为空才导入入栈的全部数据,否则会乱序
if (stkOut.empty())
{
while (stkIn.size())
{
int num =