package Queue;
import java.util.NoSuchElementException;
/**
* 有界队列
*/
public class BQueue<T> {
private final T[] qArray;
private int front, rear;
private int capacity, count;
public BQueue(int size) {
capacity = size;
qArray = (T[]) new Object[capacity];
front = 0;
rear = 0;
count = 0;
}
public BQueue() {
this(50);
}
public boolean isEmpty() {
return count == 0;
}
public boolean isFull() {
return count == capacity;
}
public int size() {
return count;
}
public void push(T item) {
if(isFull())
throw new IndexOutOfBoundsException(
"Queue overflow");
qArray[rear] = item;
rear = (rear + 1) % capacity;
count++;
}
public T pop() {
if(isEmpty())
throw new NoSuchElementException(
"Empty queue");
T tmp;
tmp = qArray[front];
front = (front + 1) % capacity;
count--;
return tmp;
}
public static void main(String[] args) {
BQueue<String> b = new BQueue<String>(10);
b.push("A");
b.push("B");
b.push("C");
//System.out.println(b.size()); // 3
try {
while(!b.isEmpty())
System.out.println(b.pop());
} catch(NoSuchElementException e) {
System.err.println("Empty queue");
}
}
}
有界队列
最新推荐文章于 2024-07-14 03:38:47 发布