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

  • 相关阅读:
    Optional类的基本使用(没怎么看)
    443. String Compression字符串压缩
    520. Detect Capital判断单词有效性
    521. Longest Uncommon Subsequence I 最长不同子数组
    459. Repeated Substring Pattern 判断数组是否由重复单元构成
    686. Repeated String Match 字符串重复后的子字符串查找
    696. Count Binary Substrings统计配对的01个数
    58. Length of Last Word最后一个单词的长度
    680. Valid Palindrome II 对称字符串-可删字母版本
    125. Valid Palindrome判断有效的有符号的回文串
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3003001.html
Copyright © 2011-2022 走看看