Leetcode-232. Implement Queue using Stacks

    xiaoxiao2021-03-25  292

    题目

    Implement the following operations of a queue using stacks.

    push(x) – Push element x to the back of queue. pop() – Removes the element from in front of queue. peek() – Get the front element. empty() – Return whether the queue is empty. Notes: You must use only standard operations of a stack – which means only push to top, peek/pop from top, size, and is empty operations are valid. Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack. You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue). 用栈实现一个队列

    思路

    设置两个栈,插入时,将栈1元素转存到栈2,然后新元素入栈1,再将栈2元素添加到栈1中,栈2清空

    代码

    class MyQueue { public: /** Initialize your data structure here. */ MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { while(!s1.empty()){ s2.push(s1.top()); s1.pop(); } s1.push(x); while(!s2.empty()){ s1.push(s2.top()); s2.pop(); } } /** Removes the element from in front of queue and returns that element. */ int pop() { int result = s1.top(); s1.pop(); return result; } /** Get the front element. */ int peek() { return s1.top(); } /** Returns whether the queue is empty. */ bool empty() { return s1.empty(); } private: stack<int> s1, s2; };
    转载请注明原文地址: https://ju.6miu.com/read-57.html

    最新回复(0)