c++实现栈的push、pop、min
在c++中用一个数组和一个变量(记录栈顶位置)来实现栈结构
//c++实现栈的push、pop、min
//用两个栈实现
//记录每一次插入的min状态
#include<iostream>
#include<stack>
#include<algorithm>
using namespace std;
class Stack
{
public:
void push(int value)
{
data.push(value);
if(min.empty()||value<min.top()) //小数栈为空或者要插入的元素是最小值,插入小数栈栈顶
{
min.push(value);
}
else
{
min.push(min.top());
}
}
void pop()
{
if(!data.empty()&&!min.empty())
{
data.pop();
min.pop(); //min里保存着每一个状态的min
}
}
int getmin()
{
if(min.empty())
{
return 0;
}
else
{
return min.top();
}
}
private:
stack<int> data;
stack<int> min; //装每一个状态的min
};
int main()
{
Stack s;
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
s.push(6);
s.push(0);
int ans = s.getmin();
cout<<ans<<endl;
return 0;
}
原文链接: https://www.cnblogs.com/serendipity-my/p/12828828.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/346142
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!