来自于算法珠玑题库
#include <iostream>
#include <stack>
using namespace std;
class minstack
{
public:
void push(int x);
void pop();
int top();
int getmin();
private:
stack<int> s,minStack;
};
void minstack::pop() {
s.pop();
minStack.pop();
}
int minstack::top() {
return s.top();
}
int minstack::getmin() {
return minStack.top();
}
void minstack::push(int x) {
s.push(x);
int minvalue=minStack.empty() ? x: min(minStack.top(),x);
minStack.push(minvalue);
}
int main()
{
minstack s1;
s1.push(56);
s1.push(12);
s1.push(47);
cout<<s1.getmin();
return 0;
}
思想是利用一个辅助栈来实现返回最小值的功能。