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()+"]";
            }
            
        }
        
        
    }

  • 相关阅读:
    ant-design-vue——子组件通过$parent修改父组件的值时无效问题及解决方法
    vue——quill-editor自定义图片上传
    ES6——var、let、const三者的区别
    js——数组/对象常用方法总结
    28.最长回文子序列
    27.马拉车
    26.扫雷一次点击
    JS添加内容之方法里传AJAX参数
    JQ 实现加载其他页面的H5代码 JQ加载H5独立导航栏代码
    CentOS 7不能上网 解决方法
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3002969.html
Copyright © 2011-2022 走看看