zoukankan      html  css  js  c++  java
  • 栈java实现之线性存储源码

    class Stack<T>{
        private int size=0;//栈大小
        private final int default_length=20;
        private int length;//栈容量
        private Object[] o;
        
        //初始化
        public Stack(){
            length = default_length;
            o = new Object[length];
        }
        
        public Stack(T data,int init_length){
            length = init_length;
            o = new Object[length];
            o[0] = data;
            size++;
        }
        
        //
        public int getLength(){
            return size;
        }
        
        
        //入栈
        public void push(T data){
            if(size+1>length){
            while(size+1 > length){
                length <<=1;
            }
            
            Object[] temp = new Object[length];
            int i = o.length;
            while(i-->=0){
                temp[i]=o[i];        
                o[i] = null;
            }
            o = temp;
            }
                
            o[size++]=data;
            
        }
        //出栈
        public T pop(){
            @SuppressWarnings("unchecked")
            T olddata = (T) o[size-1];
            o[--size] = null;
            return olddata;
        }
        //只返回栈顶元素
        @SuppressWarnings("unchecked")
        public T peek(){
            return (T) o[size-1];
        }
        //判空
        public boolean isEmpty(){
            if(size >0){
                return false;
            }else{
                return true;
            }
        }

        //清空
        public void clear(){
            while(size>0){
                o[--size] = null;
            }
        }
        
        @Override
        public String toString() {
            if(size == 0){
                return "[]";
            }else{
                StringBuffer sb = new StringBuffer("[");
                int i=0;
                while(i<size)
                    sb.append(o[i++]+",");
                return sb.delete(sb.length()-1, sb.length()).toString()+"]";
            }
            
        }
        
        
    }

  • 相关阅读:
    实现h5中radio单击取消与选中
    小程序中的组件化理解
    阿里字体css代码引入方法
    前端布局心得小结
    Python学习资源汇总,转载自他人
    史上最全 原生javascript的知识总结,适合新手及查资料用!
    windows Python 3.4.3 安装图文
    PyInstaller编译python3时使用的详细参数介绍
    PyInstaller 安装方法 及简单的编译exe (python3)
    Windows 安装 GTK+ 图文说明
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3002969.html
Copyright © 2011-2022 走看看