您的位置:首页 > 其它

包含min函数的栈

2015-09-24 19:16 316 查看
有关deque:

back() 返回最后一个元素

front() 返回第一个元素的引用

pop_back() 删除尾部的元素

pop_front() 删除头部的元素

push_back() 在尾部加入一个元素

push_front() 在头部加入一个元素

有关queue:

push() 入队

pop() 出队

front() 访问队首元素

back() 访问队尾元素

template<class T>
class StackMin
{
deque<T> m_data;
deque<T> m_min;
public:
StackMin(){}
virtual ~StackMin(){}

void push(const T& value)
{
m_data.push_back(value);
if (m_min.size() == 0 || value < m_min.back())
m_min.push_back(value);
else
m_min.push_back(m_min.back());

}
void pop()
{
m_data.pop_back();
m_min.pop_back();

}
const T& min() const
{
return m_min.back();
}
};
void main()
{
StackMin<int> s;
s.push(4);
s.push(2);
s.push(3);
cout << s.min() << endl;
s.pop();
cout << s.min() << endl;
s.push(1);
cout << s.min() << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: