// Queue.java // demonstrates queue // Was originally implemented by Lafore. Modfified by Sriram Pemmaraju // to make it generic and also change the names of some of the methods. //////////////////////////////////////////////////////////////// class GenericQueue { private int maxSize; private E [] queArray; private int front; private int rear; private int nItems; //-------------------------------------------------------------- public GenericQueue(int s) // constructor { maxSize = s; queArray = (E []) new Object[maxSize]; front = 0; rear = -1; nItems = 0; } //-------------------------------------------------------------- public void enqueue(E j) // put item at rear of queue { if(rear == maxSize-1) // deal with wraparound rear = -1; queArray[++rear] = j; // increment rear and insert nItems++; // one more item } //-------------------------------------------------------------- public E dequeue() // take item from front of queue { E temp = queArray[front++]; // get value and incr front if(front == maxSize) // deal with wraparound front = 0; nItems--; // one less item return temp; } //-------------------------------------------------------------- public E peekFront() // peek at front of queue { return queArray[front]; } //-------------------------------------------------------------- public boolean isEmpty() // true if queue is empty { return (nItems==0); } //-------------------------------------------------------------- public boolean isFull() // true if queue is full { return (nItems==maxSize); } //-------------------------------------------------------------- public int size() // number of items in queue { return nItems; } //-------------------------------------------------------------- } // end class GenericQueue