c++实现栈的push、pop、min
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; }
相关推荐
文山羊 2020-11-07
susmote 2020-11-07
拉斯厄尔高福 2020-11-04
xceman 2020-10-23
hellojunz 2020-10-23
caojhuangy 2020-10-12
xinyupan 2020-09-28
lousir 2020-09-27
一个逗逗 2020-09-22
Maryhuan 2020-09-20
rkhstar 2020-09-09
DreamSnow 2020-09-09
aehousmantao 2020-09-03
tkernel 2020-09-03
abfdada 2020-08-26
svap 2020-08-25
二十不悔三十而立 2020-08-19
FlightForever 2020-08-17
joyjoy0 2020-08-13