利用C++中两个原始栈来实现最小zhan
代码
class MinStack {
public:
void push(int x) {
stackCommon.push(x);
if(stackMin.empty()||stackMin.top()>=x)
stackMin.push(x);
}
void pop() {
if(stackCommon.empty())
{
return ;
}
int elem = stackCommon.top();
stackCommon.pop();
if(!stackMin.empty()&&elem==stackMin.top())
stackMin.pop();
}
int top() {
if(!stackCommon.empty())
return stackCommon.top();
return 0;
}
int getMin() {
if(!stackMin.empty())
return stackMin.top();
return 0;
}
private:
stack<int> stackCommon;
stack<int> stackMin;
};