- 1.题解
- 辅助栈
- 2.力扣C++源码
- 3.VS可运行源程序
使用辅助栈:两个辅助栈(一个数据栈,一个最小值栈)
2.力扣C++源码class MinStack { public: MinStack() { } void push(int val) { s1.push(val); if (minS.empty() || minS.top() >= val) { minS.push(val); } } void pop() { if (minS.top() == s1.top()) minS.pop(); s1.pop(); } int top() { return s1.top(); } int getMin() { return minS.top(); } //使用辅助栈 stack3.VS可运行源程序s1, minS; };
#include#include #include #include #include #include #include #include #include #pragma warning(disable:4996) using namespace std; //使用辅助栈:两个辅助栈(一个数据栈,一个最小值栈) class MinStack { public: MinStack() { } void push(int val) { s1.push(val); if (minS.empty() || minS.top() >= val) { minS.push(val); } } void pop() { if (minS.top() == s1.top()) minS.pop(); s1.pop(); } int top() { return s1.top(); } int getMin() { return minS.top(); } //使用辅助栈 stack s1, minS; }; int main() { MinStack* obj = new MinStack(); obj->push(-2); obj->push(0); obj->push(-3); printf("此时栈中最小值为:%dn", obj->getMin()); obj->pop(); printf("此时栈顶元素为:%dn", obj->top()); printf("此时栈中最小值为:%d", obj->getMin()); printf("n"); system("pause"); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)