/**
* 包含min函数的栈
* @author Q.Yuan
*
*/
public class IncludeMinStack {
//存放数的栈
private Stack<Integer> stack = new Stack<Integer>();
//存放最小数的栈,栈顶是最小数
private Stack<Integer> stackMinNum = new Stack<Integer>();
private int min = 1<<30;
public void push(int num){
stack.push(num);
if(num < min){
stackMinNum.push(num);
min = num;
}else{
stackMinNum.push(min);
}
}
public int pop(){
stackMinNum.pop();
return stack.pop();
}
/**
*
* @return 栈里边的最小数
*/
public int min(){
return stackMinNum.peek();
}
public static void main(String[] args) {
IncludeMinStack ims = new IncludeMinStack();
Random r = new Random();
for(int i = 0;i< 10;i++){
ims.push(r.nextInt(30)+1);
}
System.out.println(ims.stack);
for(int i=0;i<11;i++){
System.out.println(ims.min());
System.out.println(ims.pop());
}
}
}
包含min函数的栈
最新推荐文章于 2022-09-15 11:36:19 发布