• 下压桟(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()    {}
        }
    }
  • 相关阅读:
    BZOJ4407
    BZOJ 4804
    BZOJ 2820
    莫比乌斯反演入门
    BZOJ3261
    BZOJ 4327
    BZOJ1212
    AC自动机 板子
    派生类的访问控制-“三看”原则-派生类类成员访问级别设置的原则
    为什么不要重载 && 和 || 操作符!!!
  • 原文地址:https://www.cnblogs.com/haoyangblog/p/7586669.html
Copyright © 2020-2023  润新知