zoukankan      html  css  js  c++  java
  • Algs4-1.3不定容数组实现泛型栈支持迭代

    import java.util.Iterator;
    public class ResizingArrayStack<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;
        }//end resize
        public void push(Item item)
        {
            if(N==a.length) resize(2*a.length);
                a[N++]=item;
        }//end push
        public Item pop()
        {
            Item item=a[--N];
            a[N]=null;
            if(N>0 && N==a.length/4) resize(a.length/2);
            return item;
        }//end pop
        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(){}
         }
       
        public static void main(String[] args)
        {
            ResizingArrayStack<String> s;
            s=new ResizingArrayStack();
            while(!StdIn.isEmpty())
            {
                String item=StdIn.readString();
                if(!item.equals("-"))
                    s.push(item);
             }//end while
            for(String i:s)
                StdOut.printf(i+" ");
        }
    }

  • 相关阅读:
    [唐诗]禅-虞世南
    监考
    弄了一个数学论坛,感觉不错,欢迎加入讨论
    中国科学院大学2016年高等代数考研试题
    中国科学院大学2016年数学分析考研试题
    北京大学2016年高等代数与解析几何考研试题
    北京大学2016年数学分析考研试题
    pedagogical
    2012年度江西省科学技术奖授奖项目名单
    2013年度江西省科学技术奖授奖项目名单
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9849260.html
Copyright © 2011-2022 走看看