#include <iostream>
#include <stack>
using namespace std;
class MinStack
{
private:
stack<int> mainStack;
stack<int> minStack;
public:
void push(int element)
{
mainStack.push(element);
if (minStack.empty() || element <= minStack.top())
{
minStack.push(element);
}
}
int pop()
{
if (mainStack.size() <= 0)
{
return -1;
}
else
{
if (mainStack.top() == minStack.top())
{
minStack.pop();
}
int result = mainStack.top();
mainStack.pop();
return result;
}
}
int GetMinElment()
{
if (minStack.empty())
{
return -1;
}
else
{
return minStack.top();
}
}
};
int main()
{
MinStack st;
st.push(4);
st.push(9);
st.push(7);
st.push(3);
st.push(6);
st.push(1);
cout << st.GetMinElment() << endl;
st.pop();
cout << st.GetMinElment() << endl;
st.pop();
cout << st.GetMinElment() << endl;
st.pop();
cout << st.GetMinElment() << endl;
}
【C++代码】最小栈
最新推荐文章于 2024-03-11 21:07:01 发布