package implement;
public class MyQueue<T> {//基于数组实现
private int size ;//记录队列的大小
private T [] queue ;
private int head;//队头
private int end;//队尾
public MyQueue() {
}
public MyQueue(int initSize) {//指定队列大小
this.head = 0;
this.end = -1;
this.size = 0;
this.queue = (T[]) new Object[initSize];
}
/**
* ----------------
* | |1|2|3|4|5|6|7|
* 头 尾
*
* 实际数组容量没满,队列中还可以添加元素,尾部移动到下标为0的地方
* ----------------
* @param t
*/
public void enqueue(T t){//入队
if (isFull()) {//如果满了就抛出异常。
throw new RuntimeException();
}
if (end == queue.length-1) {//到队最后一个元素了
queue[0] =t;///添加到 index为0的位置,同时也就是对尾
end =0;
}else {
queue[++end] = t;//将数据放到对于的队尾加一中
}
size++;//容量加1
}
/**
* ---------------
* |1|2|3| | | |7|
* 尾 头
*
* ---------------
* @return
*/
public T
MyQueue队列的 数组实现
最新推荐文章于 2021-07-20 12:39:46 发布
本文介绍了一个基于Java的MyQueue类,该类使用数组来实现队列的功能,包括入队(enqueue)、出队(dequeue)以及检查队列是否已满或为空的方法。示例代码展示了如何初始化队列、添加和移除元素,以及在数组容量达到限制时进行调整。
摘要由CSDN通过智能技术生成