zoukankan      html  css  js  c++  java
  • 用数组实现栈demo

    package cn.aust.zyw.demo;
    
    import java.util.Iterator;
    
    /**
     * Created by zyw on 2016/2/19.
     * 用数组实现栈
     */
    public class MyStack<T> implements Iterable<T>{
        public static  void main(String args[]){
            MyStack<Integer> myStack=new MyStack<>();
            for(int i=0;i<8;i++){
                myStack.push(i);
            }
            Iterator iter=myStack.iterator();
            while(iter.hasNext()){
                System.out.println(iter.next());
            }
    
        }
        private int N=0;
        private T a[]=(T[]) new Object[5];
        public void push(T t){
            if(isFull()) resize(a.length*2);
            a[N++]=t;
        }
        public T pop(){
            if(N<0)
                throw new RuntimeException("栈已空");
            T t=a[--N];
            a[N]=null;//垃圾回收
            if(N>0&&N==a.length/4){
                resize(a.length/2);
            }
            return t;
        }
        private boolean isEmpty(){return N==0;}
        private boolean isFull(){return  N==a.length;}
        private void resize(int max){
            T t[]=(T[]) new Object[max];
            for(int i=0;i<N;i++){
                t[i]=a[i];
            }
            a=t;
        }
        int size(){return  N;}
        @Override
        public Iterator<T> iterator() {
            return new Iterator<T>() {
                private int i=N;
                @Override
                public boolean hasNext() {
                    return i>0;
                }
                @Override
                public T next() {
                    return a[--i];
                }
            };
        }
    
    
    }
  • 相关阅读:
    kibana 设置登录认证
    elasticsearch
    elasticsearch安装ik
    elasticsearch 安装head
    Docker 数据卷之进阶篇
    link快捷方式
    动作方法中 参数,Json
    spring单元测试
    js之cookie操作
    idea快捷键
  • 原文地址:https://www.cnblogs.com/yunwuzhan/p/5201224.html
Copyright © 2011-2022 走看看