首页 > 代码库 > 包含min函数的栈
包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:维护两个栈,一次添加每次的所有的数,另一个添加每次最小值(当前值比栈顶小则添加,都否添加当前栈顶),pop时两个栈都要出
Stack<Integer> mData=http://www.mamicode.com/new Stack<Integer>(); Stack<Integer> mMin=new Stack<Integer>(); //java中的peek()和c++中的top()只返回头,不移除,pop要移除 public void push(int node) { if(mData.empty()){ mMin.push(node); } if(node<mMin.peek()){ mMin.push(node); }else{ mMin.push(mMin.peek()); } mData.push(node); } public void pop() { if(mData.size()>0&&mMin.size()>0){ mData.pop(); mMin.pop(); } } public int top() { return (int)mData.peek(); } public int min() { if(mMin.empty()){ return 0; } return (int)mMin.peek(); }
包含min函数的栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。