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];
                }
            };
        }
    
    
    }
  • 相关阅读:
    cocos2dx
    读书日记-快速排序算法
    vs重装找不到 $(WindowsSdkDir) 配置问题
    IOS应用FFMPEG库
    OpenGL ES2.0贴图
    OpenGL ES2.0光照
    IOS系统配置FFMEPG
    GPUImage库的使用
    spring08事务
    java10---点餐系统
  • 原文地址:https://www.cnblogs.com/yunwuzhan/p/5201224.html
Copyright © 2011-2022 走看看