代码如下:
class MinStack {
private:
stack<int> majorStack;
stack<int> minorStack;
public:
void push(int x) {
majorStack.push(x);
if(minorStack.empty() == true)
minorStack.push(x);
else {
if(x <= minorStack.top())
minorStack.push(x);
}
}
void pop() {
int tmp;
if(majorStack.empty() == false) {
tmp = majorStack.top();
majorStack.pop();
}
if(minorStack.empty() == false) {
if(tmp == minorStack.top())
minorStack.pop();
}
}
int top() {
if(majorStack.empty() == true)
return -65536;
return majorStack.top();
}
int getMin() {
if(minorStack.empty() == true)
return -65536;
return minorStack.top();
}
};
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/guanzhongshan/article/details/46756253