import java.util.Stack;
/**
* @author shy_black
* @date 2019/3/19 9:45
* @Description:主要是借助辅助栈min解决问题
* push方法:
* 将node节点push,当该元素是stack中第一个push的元素或该元素小于min栈的顶部元素的
* 将该元素也push到min栈中,否则,就将min栈的顶部元素再压一次入栈
* pop方法:
* 当stack与min栈都不为空时,将stack与min栈都做pop操作
* top方法:
* 当stack不为空时,peek一下
* min方法:
* 当stack不为空时,只需要peek一下min栈顶部即可
*
*/
public class 包含min函数的栈 {
public static Stack<Integer> stack = new Stack<>();
public static Stack<Integer> min = new Stack<>();
public void push(int node) {
stack.push(node);
if(min.isEmpty() || node < min.peek()) {
min.push(node);
}else {
min.push(min.peek());
}
}
public void pop() {
if(stack.size() > 0 && min.size() > 0)
stack.pop();
min.pop();
}
public int top() {
if(stack.size() > 0)
return stack.peek();
return 0;
}
public int min() {
if(stack.size() > 0 && min.size() > 0)
return min.peek();
return 0;
}
}
包含min函数的栈
最新推荐文章于 2022-08-18 17:01:17 发布