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

  • 相关阅读:
    cegui 编译过程详解(cegui-0.8.2)
    ogre3D学习基础17 --- 如何手动创建ogre程序
    ogre3D学习基础16 -- 手动创建实体(ManualObject)
    ogre3D学习基础15 -- 创建BSP Scene Manager
    ogre3D,cegui配置问题
    ogre3D学习基础14 -- 雾化效果与天空面,天空盒,天空穹
    ogre3D学习基础13 -- 键盘控制网格动画mesh
    ogre3D学习基础12 --- 让机器人动起来(移动模型动画)
    引用其他头文件时出现这种错误,莫名其妙,error C2065: “ColorMatrix”: 未声明的标识符
    STL学习笔记3--deque
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3003001.html
Copyright © 2011-2022 走看看