Java数据结构与算法之队列(Queue)实现
程序员文章站
2022-03-26 21:19:28
Java代码实现队列public class Queue {// 存储队列数组private long[] arr;// 队列最大长度private int maxSize;// 队列元素数量private int elems;// 出队列标记private int font;// 进队列标记private int end;public Queue(int maxSize) {this.maxSize = maxSize;arr...
前言
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列图解
Java代码实现队列
public class Queue {
// 存储队列数组
private long[] arr;
// 队列最大长度
private int maxSize;
// 队列元素数量
private int elems;
// 出队列标记
private int font;
// 进队列标记
private int end;
public Queue(int maxSize) {
this.maxSize = maxSize;
arr = new long[maxSize];
elems = 0;
font = 0;
end = -1;
}
// 入队列
public void insert(long value) {
if(end == maxSize - 1) {
end = -1;
}
arr[++end] = value;
elems++;
}
// 出队列
public long remove() {
long tmp = arr[font++];
if(font == maxSize) {
font = 0;
}
elems--;
return tmp;
}
// 队列是否为空
public boolean isEmpty() {
return (elems == 0);
}
// 队列是否满了
public boolean isFull() {
return (elems == maxSize);
}
// 队列大小
public int size() {
return elems;
}
}
public static void main(String[] args) {
Queue queue= new Queue(6);
System.out.println(queue.isEmpty());
queue.insert(1);
queue.insert(2);
queue.insert(3);
queue.insert(4);
queue.insert(5);
queue.insert(6);
while(!queue.isEmpty()) {
System.out.println(queue.remove());
}
}
程序运行结果
本文地址:https://blog.csdn.net/lc8023xq/article/details/107357193