[剑指offer][面试题21]包含min函数的栈
2013-10-14 10:46
471 查看
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
#include <stack> using namespace std; template<typename T> struct stackWithMin { private: stack<T> m_stack; stack<T> m_stMin; public: void push(const T& t); void pop(); const T& min(); }; template<typename T> void stackWithMin<T>:: push(const T& t) { m_stack.push(t); if (m_stMin.size()==0 || t<m_stMin.top()){ m_stMin.push(t); } else{ m_stMin.push(m_stMin.top()); } } template<typename T> void stackWithMin<T>:: pop() { m_stack.pop(); m_stMin.pop(); } template<typename T> const T& stackWithMin<T>::min() { assert(m_stack.size()>0 && m_stMin.size()>0); return m_stMin.top(); } int main() { }
相关文章推荐
- 剑指Offer_面试题21_包含min函数的栈
- 剑指offer面试题21:包含min函数的栈
- 剑指offer之面试题21:包含min函数的栈
- 剑指offer——面试题21:包含min函数的栈(泛型编程,一个巧妙的思维)
- 剑指offer 面试题21:包含min函数的栈
- 【剑指offer】面试题21:包含min函数的栈
- 剑指offer-面试题21.包含min函数的栈
- 剑指offer面试题[21]包含min函数的栈
- 剑指Offer---面试题21:包含min函数的栈
- 剑指Offer:面试题21——包含min函数的栈(java实现)
- 【剑指offer】面试题21:包含min函数的栈
- 【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈
- 剑指Offer之面试题21:包含min函数的栈
- 【剑指offer】面试题21:包含min函数的栈
- 剑指offer--面试题21:包含min函数的栈
- 【剑指offer 面试题21】包含min函数的栈
- 剑指Offer面试题20顺时针打印矩阵,面试题21包含min函数的栈
- 剑指Offer:面试题21 包含min函数的栈
- 剑指offer-面试题21.包含min函数的栈
- 剑指offer面试题21 包含min函数的栈