包含min函数的栈

来源:互联网 发布:浮生六记读后感知乎 编辑:程序博客网 时间:2024/06/18 10:19

设计包含min函数的栈

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。

class StackWithMin {stack<int> m_data;stack<int> m_min;public:void push(int value) {m_data.push(value);if (m_min.empty() || m_min.top() > value) {m_min.push(value);} else {m_min.push(m_min.top());}}public:void pop() {assert(!m_data.empty() && !m_min.empty());m_data.pop();m_min.pop();}public:int min() {assert(!m_data.empty() && !m_min.empty());return m_min.top();}};


0 0
原创粉丝点击