zoukankan      html  css  js  c++  java
  • Algs4-1.3不定容泛型栈(不可迭代)

     public class FixedCapacityStack<Item>
    {
        private Item[] a;
        private int N;
        public FixedCapacityStack(int cap)
        {a=(Item[]) new Object[cap];}
       
        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 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 static void main(String[] args)
        {
            FixedCapacityStack<String> s;
            s=new FixedCapacityStack<String>(Integer.parseInt(args[0]));
            while(!StdIn.isEmpty())
            {
                String item=StdIn.readString();
                if(!item.equals("-"))
                    s.push(item);
                else if (!s.isEmpty())
                    StdOut.printf(s.pop()+" ");
            }//end while
            StdOut.println("("+s.size()+" left on stack)");
        }//end main
    }//end class

  • 相关阅读:
    前后端分离的思想
    原生js瀑布流
    瀑布流懒加载
    js的垃圾回收机制
    TCP三次挥手四次握手
    HTTP与HTTPS的区别
    http报文
    前后端的分离
    express中间件
    vue生命周期钩子函数解读步骤
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9849257.html
Copyright © 2011-2022 走看看