开发一个特殊栈(支持获取最小值)
发布时间
阅读量:
阅读量
实现一个特殊的栈(能够返回栈中最小值)
该思路采用两个独立的栈结构进行数据处理,在压入(push)和弹出(pop)操作的同时实现数值追踪功能。其中data_stack用于存储数据值,min_stack用于记录最小值。在压入操作时会比较当前输入值与min_stack的顶元素,并将较小的那个数值推入到min_stack中。
注:min栈始终记录着data栈每一个状态下的最小值
class m_stack
{
public:
void push(int value)
{
if(data.empty()&&min.empty())
{
data.push(value);
min.push(value);
}
else
{
data.push(value);
min.push(value<min.top()?value:min.top());
}
}
void pop()
{
data.pop();
min.pop();
}
int getmindata()
{
全部评论 (0)
还没有任何评论哟~
