首页 > 学院 > 开发设计 > 正文

可查询最值的栈练习

2019-11-08 02:37:26
字体:
来源:转载
供稿:网友

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的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;};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表