队列用java实现以及对应的操作方法_java如何使用队列处理请求

队列用java实现以及对应的操作方法_java如何使用队列处理请求1.使用java实现队列队列采用java语言实现

队列用java实现以及对应的操作方法_java如何使用队列处理请求"

1.使用java实现队列

        队列采用java语言实现。首先我们得了解下队列的特点。队列的特点是先进先出,所以需要两个下标来确定对头位置和队尾位置,这样方便增加和删除操作。

2具体代码实现

//创建一个队列
class ArrayQueue {
private int frout;//头
    private int rear;//尾
    private int Maxsize;
    private int[] queue;

    ArrayQueue(int max) {
        this.Maxsize = max;
        queue = new int[Maxsize];
        frout = -1;
        rear = -1;

    }
}

基本的框架有了就该往里面添加方法了,首先我们得知道队列是空的还是满的,队空的条件是rear=frout。队空的条件是rear=maxsize-1;具体代码如下

public boolean isEmputy() {
        return rear == frout;
    }

    public boolean isFull() {
        return rear == Maxsize - 1;
    }

 

增加操作是每次rear先加一在插入:

public void addQueue(int n) {
        if (isFull()) {
            System.out.println("队列已满");
        } else {
            rear++;
            queue[rear] = n;
        }
    }

 

出队操作头指针+1在出队

public int exitQueue() {
        if (isEmputy()) {
            throw new RuntimeException("队列已空");
        } else {
            frout++;
            return queue[frout];
        }
    }

但是这样会有一个问题就是每次队列只能使用一次,不能使用多次,所以就以用到循环队列,循环队列的思想是将队列重复使用,他初始的时候,frout=rear=0;为了区分是队空还是队满,我们约定空出一个空间的位置来区分是空还是满。队空的条件还是frout = rear 为满的条件是( rear+1)%maxsize = frout. 具体代码如下:

//循环队列
class cArrayQueue {
    private int frout;
    private int rear;
    private int Maxsize;
    private int[] queue;

    cArrayQueue(int max) {
        this.Maxsize = max;
        queue = new int[Maxsize];
        frout = 0;
        rear = 0;
    }

    public boolean isEmputy() {
        return rear == frout;
    }

    public boolean isFull() {
        return (rear + 1) % Maxsize == frout;
    }

    public void addQueue(int n) {
        if (isFull()) {
            System.out.println("队列已满");
        } else {

            queue[rear] = n;
            rear = (rear + 1) % Maxsize;

        }
    }

    public void exitQueue() {
        if (isEmputy()) {
            throw new RuntimeException("队列已空");
        } else {
            //int temp = queue[frout];
            frout = (frout + 1) % Maxsize;
            //return temp;
        }
    }
   
}

 

今天的文章队列用java实现以及对应的操作方法_java如何使用队列处理请求分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86157.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注