您的位置:首页 > 职场人生

剑指offer--面试题30:包含min函数的栈

2017-08-10 15:27 393 查看


#include<iostream.h>
#include<stack>
using namespace std;

class Solution
{
public:
stack<int> st, minSt;//st表示存储元素的栈,minSt保存每次栈操作时,保存栈中最小元素
void push(int value) ;
void pop() ;
int min() ;
};

void Solution::push(int value)
{
st.push(value);

if (minSt.empty()||value < minSt.top())
minSt.push(value);
else
minSt.push(minSt.top());
return;
}
void Solution::pop()
{//出栈时,需要对两个栈st和minSt同时操作
if (!st.empty())
{
st.pop();
minSt.pop();
}
return;
}

int Solution::min()
{
if (!minSt.empty())
{
return minSt.top();
}
return 0;
}

void main()
{
Solution s;
s.push (2);
s.push (3);
s.push (1);
s.push (7);
s.push (0);
s.push (13);
s.pop();
s.pop();
s.pop();
printf("当前最小栈内元素为:%d\n",s.min());
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: