• 数据结构 -- 栈


    1. 实现一个栈,可以在最小时间复杂度内计算出栈中的最小值。空间复杂度无视。

    package lime.xiaoniu;
    
    import java.util.Iterator;
    import java.util.Stack;
    
    /**
     * 实现一个栈,可以在最小时间复杂度内计算出栈中的最小值。空间复杂度无视。
     */
    public class DevilStack {
        public static void main(String[] args){
            DevilStack stack = new DevilStack();
            for(int i = 10;i > 0;i--){
                stack.push((int)(Math.random() * 100));
            }
            stack.inOrder();
            while (!stack.isEmpty()){
                System.out.println("mixStackPop : " + stack.peekMixData() + " dataStackPop : " + stack.pop());
            }
        }
        private Stack<Integer> dataStack = new Stack<Integer>();
        private Stack<Integer> mixStack = new Stack<Integer>();
        private Integer mixData = Integer.MAX_VALUE;
    
        public boolean push(Integer data){
            if(null == data){
                return false;
            }
            dataStack.push(data);
            mixStack.push(mixData = Math.min(mixData,data));
            return true;
        }
        public Integer pop(){
            if(dataStack.isEmpty()){
                return null;
            }
            mixStack.pop();
            return dataStack.pop();
        }
        public Integer peekMixData(){
            if(dataStack.isEmpty()){
                return null;
            }
            return mixStack.peek();
        }
        public void inOrder(){
            if(dataStack.isEmpty()){
                return;
            }
            Iterator<Integer> iterator = dataStack.iterator();
            System.out.print("dataStack : " );
            for(;iterator.hasNext();){
                System.out.print(iterator.next() + "  ");
            }
            System.out.print("
    mixStack : ");
            for(iterator = mixStack.iterator();iterator.hasNext();){
                System.out.print(iterator.next() + "  ");
            }
            System.out.println();
        }
        public boolean isEmpty(){
            return dataStack.isEmpty();
        }
    }

    啦啦啦

  • 相关阅读:
    HTTP概述
    【HTTP权威指南】第二章URL与资源
    【HTTP权威指南】第三章HTTP报文
    列表生成式
    六一问候
    NYOJ 528 找球号(三)
    NYOJ 138 找球号(二)
    HDU3790 最短路径问题
    NYOJ 228 士兵杀敌(五)
    NYOJ3 3 多边形重心问题
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/7872316.html
Copyright © 2020-2023  润新知