1: /** 2: A class that implements the ADT queue by using an expandable 3: circular array with one unused location. 4: 5: @author Frank M. Carrano 6: @author Timothy M. Henry 7: @version 4.0 8: */ 9: public final class ArrayQueue<T> implements QueueInterface<T> 10: { 11: private T[] queue; // Circular array of queue entries and one unused location 12: private int frontIndex; 13: private int backIndex; 14: private boolean initialized = false; 15: private static final int DEFAULT_CAPACITY = 50; 16: private static final int MAX_CAPACITY = 10000; 17: 18: public ArrayQueue() 19: { 20: this(DEFAULT_CAPACITY); 21: } // end default constructor 22: 23: public ArrayQueue(int initialCapacity) 24: { 25: checkCapacity(initialCapacity); 26: 27: // The cast is safe because the new array contains null entries 28: @SuppressWarnings("unchecked") 29: T[] tempQueue = (T[]) new Object[initialCapacity + 1]; 30: queue = tempQueue; 31: frontIndex = 0; 32: backIndex = initialCapacity; 33: initialized = true; 34: } // end constructor 35: 36: // < Implementations of the queue operations go here. > 37: // . . . 38: 39: } // end ArrayQueue