package utils;
public class MyQueue<T> {
private int maxSize;
private Object[] queArray;
private int front;
private int rear;
private int nItems;
public MyQueue(int size) {
maxSize = size;
queArray = new Object[size];
front = 0;
rear = -1;
nItems = 0;
}
public void enqueue(T x) {
if (rear == maxSize - 1)
rear = -1;
queArray[++rear] = x;
nItems++;
if (nItems > maxSize) {
nItems = maxSize;
}
}
public T dequeue() {
T temp = (T)queArray[front++];
if (front == maxSize)
front = 0;
nItems--;
if (nItems < 0) {
nItems = 0;
}
return temp;
}
public T peekFront() {
return (T)queArray[front];
}
public boolean isEmpty() {
return nItems == 0;
}
public boolean isFull() {
return nItems == maxSize;
}
public int size() {
return nItems;
}
public static void main(String[] args) {
MyQueue<Integer> queue = new MyQueue<Integer>(10);
for (int i = 1; i <= 15; ++i) {
queue.enqueue(i);
}
while (!queue.isEmpty()) {
System.out.print(queue.dequeue() + " ");
}
System.out.println();
}
}
为算法考试做准备--队列实现Queue
最新推荐文章于 2022-06-12 12:44:17 发布