定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
比较简单,利用两个栈来实现,一个栈正常存储数据,另一个栈保存最小值。如果要压入的数据小于最小栈的栈顶,则压入数据,否则压入最小值的栈顶。代码如下:
class Solution {public: void push(int value) { stackdata.push(value); if(stackmin.empty()) stackmin.push(value); else { if(value<stackmin.top()) stackmin.push(value); else stackmin.push(stackmin.top()); } } void pop() { stackdata.pop(); stackmin.pop(); } int top() { return stackdata.top(); } int min() { return stackmin.top(); }PRivate: stack<int> stackdata; stack<int> stackmin;};新闻热点
疑难解答