美文网首页漫漫长路C++
#c++实现一个可以返回最小值的stack

#c++实现一个可以返回最小值的stack

作者: 想吃面 | 来源:发表于2018-01-31 13:38 被阅读0次

    来自于算法珠玑题库

    https://soulmachine.gitbooks.io/algorithm-essentials/content/java/stack-and-queue/stack/min-stack.html

    #include <iostream>
    #include <stack>
    using namespace std;
    
    class minstack
    {
    public:
        void push(int x);
        void pop();
        int top();
        int getmin();
    
    private:
        stack<int> s,minStack;
    };
    
    void minstack::pop() {
    s.pop();
        minStack.pop();
    }
    int minstack::top() {
        return s.top();
    }
    int minstack::getmin() {
        return minStack.top();
    }
    void minstack::push(int x) {
    s.push(x);
        int minvalue=minStack.empty() ? x: min(minStack.top(),x);
        minStack.push(minvalue);
    }
    int main()
    {
        minstack s1;
        s1.push(56);
        s1.push(12);
        s1.push(47);
        cout<<s1.getmin();
        return 0;
    }
    

    思想是利用一个辅助栈来实现返回最小值的功能。

    相关文章

      网友评论

        本文标题:#c++实现一个可以返回最小值的stack

        本文链接:https://www.haomeiwen.com/subject/teikzxtx.html