zoukankan      html  css  js  c++  java
  • 下压桟(LIFO)

      

      此代码并不复杂,但却是其他集合数据类型的实现的模版

    import java.util.Iterator;
    
    public class ResizingArrayStackStack<Item> implements Iterable<Item>{
        private Item[] a = (Item[]) new Object[1];
        private int N = 0;
        public boolean isEmpty(){
            return N==0;
        };
    
        public int size(){
            return N;
        };
    
        private void resize(int max){
            Item[] temp = (Item[]) new Object[max];
            for(int i=0;i<N;i++){
                temp[i] = a[i];
            }
            a = temp;
        }
    
        public void push(Item item){
            if(N == a.length)resize(2*a.length);
            a[N++] = item;
        }
    
        public Item pop(){
            Item item = a[--N];
            a[N] = null;
            if(N > 0 && N == a.length/4) resize(a.length/2);
            return item;
        }
    
        public Iterator<Item> iterator(){
            return new ReverseArrayIterator();
        }
    
        private class ReverseArrayIterator implements Iterator<Item>{
            private int i = N;
            
            public boolean hasNext(){ return i > 0;}
            public Item next()    { return a[--i];}
            public void remove()    {}
        }
    }
  • 相关阅读:
    多表关联查询_resultMap_集合对象
    mybatis多表关联查询之resultMap单个对象
    十二.filter
    十二.函数式编程
    十一.列表生成式
    十,迭代
    九.高级特性
    八.函数
    七.条件判断和循环
    六.使用list和tuple
  • 原文地址:https://www.cnblogs.com/haoyangblog/p/7586669.html
Copyright © 2011-2022 走看看