特殊栈:实现栈的基本功能并能返回栈中最小元素
思路:准备两个栈,一个Data,一个MinData正常压栈,用于实现栈的基本功能Min一定要和Data元素个数相同,但是要保证一直压入的是栈中的最小元素#include<iostream>#include<stack>using namespace std;class SpecialStack{public:stack<int> Data;stack<in
·
思路:
-
准备两个栈,一个Data,一个Min
-
Data正常压栈,用于实现栈的基本功能
-
Min一定要和Data元素个数相同,但是要保证一直压入的是栈中的最小元素
#include<iostream>
#include<stack>
using namespace std;
class SpecialStack
{
public:
stack<int> Data;
stack<int> Min;
void push(int data)
{
Data.push(data); //data栈正常压栈
//min栈始终压入整个栈中的最小元素
if (Min.empty())
Min.push(data);
else if (data < Min.top())
Min.push(data);
else
Min.push(Min.top());
}
void pop()
{
//出栈的话data和min保持同步
Data.pop();
Min.pop();
}
int GetMin()
{
return Min.top(); //返回Min栈顶元素,不弹出
}
};
更多推荐
已为社区贡献1条内容
所有评论(0)