美文网首页
用数组实现循环队列

用数组实现循环队列

作者: SinX竟然被占用了 | 来源:发表于2017-09-17 12:56 被阅读0次

    用数组实现循环队列!

    import java.io.*;  
        public class QueueArray {     
        Object[] a; //对象数组,队列最多存储a.length-1个对象     
        int front;  //队首下标     
        int rear;   //队尾下标     
        public QueueArray(){     
            this(10); //调用其它构造方法     
        }     
        public QueueArray(int size){     
            a = new Object[size];     
            front = 0;     
            rear =0;     
        }     
        /**   
         * 将一个对象追加到队列尾部   
         * @param obj 对象   
         * @return 队列满时返回false,否则返回true   
         */    
        public boolean add(Object obj){     
            if((rear+1)%a.length==front){     
                return false;     
            }     
            a[rear]=obj;     
            rear = (rear+1)%a.length;     
            return true;     
        }     
        /**   
         * 队列头部的第一个对象出队   
         * @return 出队的对象,队列空时返回null   
         */    
        public Object poll(){     
            if(rear==front){     
                return null;     
            }     
            Object obj = a[front];     
            front = (front+1)%a.length;     
            return obj;     
        }     
        public static void main(String[] args) {     
            QueueArray q = new QueueArray(4);     
            System.out.println(q.enqueue("张三"));     
            System.out.println(q.enqueue("李斯"));     
            System.out.println(q.enqueue("赵五"));     
            System.out.println(q.enqueue("王一"));//无法入队列,队列满     
            for(int i=0;i<4;i++){     
                System.out.println(q.dequeue());     
            }     
        }     
    }   
    

    相关文章

      网友评论

          本文标题:用数组实现循环队列

          本文链接:https://www.haomeiwen.com/subject/fjwpsxtx.html