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

  • 相关阅读:
    【转贴】判断sql server表是否存在的方法
    SQL SERVER 中将重复记录合并为一条记录
    数据清洗:将字段值全部为数字的记录置空
    【转贴】PLSQL不安装客户端连接远程oracle
    Datalength() 与 Len()的区别
    SQL SERVER 查询重复的记录的方法
    连接mysql利用jsp实现简单的登陆操作
    jsp包含文件的两种方法
    preparedStatment的用法
    request内置对象介绍和使用
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3002969.html
Copyright © 2011-2022 走看看