LeetCode 232. 用栈实现队列(C++)

    技术2022-07-11  83

    232. 用栈实现队列

    题目描述:

    使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。

    主要思路:

    入队时

    1.直接push到inStack中

    出队时

    1.如果outStack为空,先把inStack所有元素逐一弹出,push到outStack,最后弹出outStack的栈顶元素 2.如果outStack不为空,直接弹出outStack的栈顶元素

    代码如下:

    class MyQueue { public: stack<int> inStack; stack<int> outStack; MyQueue() { } void push(int x) { inStack.push(x); } int pop() { cheak(); int a=outStack.top(); outStack.pop(); return a; } int peek() { cheak(); return outStack.top(); } bool empty() { return inStack.empty()&&outStack.empty(); } void cheak() { if(outStack.empty()) { while(!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } } };

    执行结果:双100%

    Processed: 0.013, SQL: 9