• 面试题12 包含 min 函数的栈 【栈】


    #include <iostream>
    #include <cstdio>
    #include <stack>
    #include <queue>
    #include <deque> // 支持下标访问
    #include <algorithm>
    
    using namespace std;
    template<typename T> class StackWithMin {
    public :
        StackWithMin() {}
        virtual ~StackWithMin() {}
        const size_t size() const;
        void pop();
        void push(const T& value);
        T top() const;
        T min();
    private :
        deque<T> m_data;
        deque<T> m_min;
    };
    template<typename T> const size_t StackWithMin<T>::size() const {
        return m_data.size();
    }
    template<typename T> void StackWithMin<T>::pop() {
        assert(!m_data.empty() && !m_min.empty());
        m_data.pop_front();
        m_min.pop_front();
    }
    template<typename T> void StackWithMin<T>::push(const T& value) {
        m_data.push_front(value);
        if(m_min.empty() || value < m_min[0]) {
            m_min.push_front(value);
        }
        else {
            m_min.push_front(m_min[0]);
        }
    }
    template<typename T> T StackWithMin<T>::top() const {
        assert(!m_data.empty() && !m_min.empty());
        return m_data[0];
    }
    template<typename T> T StackWithMin<T>::min() {
        assert(!m_data.empty() && !m_min.empty());
        return m_min[0];
    }
    int main() {
        return 0;
    }

  • 相关阅读:
    归并排序算法
    交换排序算法
    插入排序算法
    DASCTF2021五月赛
    第二届newsctf
    山西省赛
    2021广东省第一届网络安全竞赛
    2021 DozerCTF
    2021-HSCTF re
    buuctf-re (持续更新)
  • 原文地址:https://www.cnblogs.com/robbychan/p/3787144.html
Copyright © 2020-2023  润新知