Java数组实现循环队列

2012-11-12

    Java数组实现循环队列,队尾指针为rear,队首指针为front,队尾入队,队首出队,数组空间循环利用。

    view plaincopy to clipboardprint?
    /**
     * QueueArray.java
     */
    package cn.edu.uibe.oop;
    /**
     * 数组实现的循环队列
     * @author TongQiang
     */
    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 enqueue(Object obj){
            if((rear+1)%a.length==front){
                return false;
            }
            a[rear]=obj;
            rear = (rear+1)%a.length;
            return true;
        }
        /**
         * 队列头部的第一个对象出队
         * @return 出队的对象,队列空时返回null
         */
        public Object dequeue(){
            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());
            }
        }
    }

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    编辑推荐:

    统计你写的java代码行数

    JavaTimer和TimerTask详解

    8个改善Java遗留系统的技巧

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com