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