zoukankan      html  css  js  c++  java
  • 数据结构 -- 栈

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

    啦啦啦

  • 相关阅读:
    不错的前端特效
    查询世界城市维度、经度
    echarts 省市区县geoJson获取
    Echarts世界地图中国分区显示
    全国主要城市空气质量
    Echarts世界地图中国分区显示与获取具体城市的geojson
    md编辑器typora
    PHP基础之数组方法
    PHP封装 冒泡排序算法
    PHP基础之日期和时间管理
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/7872316.html
Copyright © 2011-2022 走看看