zoukankan      html  css  js  c++  java
  • 包含min函数的栈

    定义栈的数据结构,在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min , push , pop 的时间复杂度都是O(1)。

     1 /////////////////包含min函数的栈///////////////////////
     2 template<class T> class StackWithMin
     3 {
     4 public:
     5     void push(const T& value);
     6     void pop();
     7     T& min();
     8 private:
     9     stack<T> m_data ;//保存数据
    10     stack<T> m_min ;//保存最小值
    11 };
    12 
    13 template<class T> void StackWithMin<T>::push(const T& value)
    14 {
    15     
    16     m_data.push(value);
    17     if ( m_min.size()==0 || value<m_min.top() )
    18     {
    19         m_min.push(value);
    20     }
    21     else
    22     {
    23         m_min.push(m_min.top());
    24     }
    25 }
    26 template<class T> void StackWithMin<T>::pop()
    27 {
    28     if (m_data.size()>0 && m_min.size()>0)
    29     {
    30         m_data.pop();
    31         m_min.pop();
    32     }
    33     else
    34     {
    35         return;
    36     }
    37 }
    38 template<class T> T& StackWithMin<T>::min()
    39 {
    40     assert(m_min.size()>0);
    41     
    42     return m_min.top();
    43     
    44     
    45 }
  • 相关阅读:
    安装cifs 访问windows的共享文件
    创建swap文件
    linxu 网路的一些命令
    database mysql
    __alloc_pages
    firefox tips
    关于文件的BOM头
    java实现跳表
    java中如何优雅的停止一个线程
    java中Thread启动流程分析
  • 原文地址:https://www.cnblogs.com/csxcode/p/3701513.html
Copyright © 2011-2022 走看看