定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
public:
/*入栈时,判断存放最小元素的栈是否为空,
入栈元素是否小于存放最小元素栈的栈顶元素*/
void push(int value) {
stacktemp.push(value);
if(minstack.empty() || value<minstack.top())
minstack.push(value);
}
/*出栈时,判断出栈元素和最小元素栈的栈顶元素是否值相同*/
void pop() {
if(stacktemp.empty())
return;
if(stacktemp.top()==minstack.top())
minstack.pop();
stacktemp.pop();
}
int top() {
if(!stacktemp.empty())
return stacktemp.top();
}
int min() {
int minval;
if(!minstack.empty())
minval=minstack.top();
return minval;
}
};