21 包含min函数的栈

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());
        }
    }
}

 

posted @ 2014-08-23 23:02  seven7seven  阅读(163)  评论(0编辑  收藏  举报