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

    class Queue<T>{
        private int size = 0;
        private int length;
        private final int default_length = 20;
        private Object[] o;
        
        public Queue(){
            length = default_length;
            o = new Object[length];
        }
        
        public Queue(T data,int init_length){
            length = init_length;
            o = new Object[length];
            o[size] = data;
            size++;
        }
        
        public int getSize(){
            return size;
        }
        
        //进队列
        public void add(T data){
        
            if(size+1>length){
                length *=2;
                Object[] temp = new Object[length];
                int i=0;
                while(i<size){
                    temp[i] = o[i];
                    o[i--]=null;
                }
                o = temp;
            }
            
            o[size++] = data;
        }
        
        //出队列
        public T remove(){
            if(isEmpty()){
                throw new NullPointerException("空队列");
            }
            @SuppressWarnings("unchecked")
            T oldvalue = (T) o[0];
            int i = 0;
            while(i<size-1){
                o[i] = o[i+1];
                i++;
            }
            o[i] = null;
            size--;
            return oldvalue;
        }
        
        public void clear(){
            while(size-->0){
                o[size] = null;
            }
        }
        
        public boolean isEmpty(){
            if(size>0){
                return false;
            }else
                return true;
        }

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

  • 相关阅读:
    Excel 如何复制粘贴一整行
    如何修改文件的扩展名(后缀)
    中文乱码之myEclipse项目导入时中文乱码(待)
    如何在java中导入jar包
    如何在myEclipse中创建配置文件,比如:XXX.properties
    Postman安装教程
    API是什么?——回答:接口。(待)
    找回J2EE 之再学习打卡记录
    让外界可以访问电脑上的网站的几种方式——花生壳,域名,IIS(待)
    18、任务暂停挂起
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3003001.html
Copyright © 2011-2022 走看看