定義棧的資料結構,請在該類型中實作一個能夠得到棧最小元素的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;
}
};