包含min函数的栈
2014-04-30 15:54
169 查看
定义栈的数据结构,在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min , push , pop 的时间复杂度都是O(1)。
/////////////////包含min函数的栈/////////////////////// template<class T> class StackWithMin { public: void push(const T& value); void pop(); T& min(); private: stack<T> m_data ;//保存数据 stack<T> m_min ;//保存最小值 }; template<class T> void StackWithMin<T>::push(const T& value) { m_data.push(value); if ( m_min.size()==0 || value<m_min.top() ) { m_min.push(value); } else { m_min.push(m_min.top()); } } template<class T> void StackWithMin<T>::pop() { if (m_data.size()>0 && m_min.size()>0) { m_data.pop(); m_min.pop(); } else { return; } } template<class T> T& StackWithMin<T>::min() { assert(m_min.size()>0); return m_min.top(); }
相关文章推荐
- ubuntu获取查看uuid的方法
- python获取某网址下所有图片
- Apache Shiro 简介
- 解决non-object的重大问题
- linux bash shell之declare
- ItemBased With Mahout
- [April]总结和规划
- JDOM读取XML文件例子程序
- 另类保存微信公众平台历史消息的方法 - 星标消息
- 惊涛怪浪(double dam-break) -- position based fluids
- 异常
- 在Visual Studio 中替换空行
- android常用工具记录
- 在一台电脑访问另一台电脑的mysql数据库
- Android Http 异步请求
- hadoop源码 - Client代码结构
- error: pointer targets in passing argument 3 of 'accept' differ in signedness [-Werror=pointer-sign
- 实现运动的尾巴效果
- Reverse Words in a String
- 安装Oracle提示OracleMTSRecoveryService 已经存在,解决方法