import java.util.Random; import java.util.Stack; public class test21{ private static Stack<Integer> dataStack = new Stack<Integer>(); private static Stack<Integer> minStack = new Stack<Integer>(); public static int min(){ if(!dataStack.isEmpty()&&!minStack.isEmpty()){ return minStack.lastElement(); } return -1; } public static void push(int data){ dataStack.push(data); if(minStack.size()==0||minStack.lastElement()>data){ minStack.push(data); }else{ minStack.push(minStack.lastElement()); } } public static int pop(){ if(!dataStack.isEmpty()&&!minStack.isEmpty()){ minStack.pop(); return dataStack.pop(); } return -1; } public static void main(String[] args){ Random random = new Random(); for(int i=0;i<10;i++){//入栈 int data = random.nextInt(10);//0-100 push(data); System.out.print("=====data======="+data); System.out.println("=====min======="+min()); } System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%"); for(int i=0;i<10;i++){//出栈 int data = pop(); System.out.print("=====data======="+data); System.out.println("=====min======="+min()); } } }