Queue Code

// Queue.java // demonstrates queue // to run this program: C>java QueueApp //////////////////////////////////////////////////////////////// class Queue { private int maxSize; private long[] queArray; private int front; private int rear; private int nItems; // ————————————————————– public Queue(int s) // constructor { maxSize = s; queArray = new long[maxSize]; front = 0; rear = -1; nItems = 0; } // ————————————————————– public void insert(long 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 long remove() // take item from front of queue { long temp = queArray[front++]; // get value and incr front if (front == maxSize) // deal with wraparound front = 0; nItems–; // one less item return temp; } // ————————————————————– public long 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 Queue // ////////////////////////////////////////////////////////////// class QueueApp { public static void main(String[] args) { Queue theQueue = new Queue(5); // queue holds 5 items theQueue.insert(10); // insert 4 items theQueue.insert(20); theQueue.insert(30); theQueue.insert(40); theQueue.remove(); // remove 3 items theQueue.remove(); // (10, 20, 30) theQueue.remove(); theQueue.insert(50); // insert 4 more items theQueue.insert(60); // (wraps around) theQueue.insert(70); theQueue.insert(80); while (!theQueue.isEmpty()) // remove and display { // all items long n = theQueue.remove(); // (40, 50, 60, 70, 80) System.out.print(n); System.out.print(” “); } System.out.println(“”); } // end main() } // end class QueueApp // ////////////////////////////////////////////////////////////// Efficiency of Queues
As with a stack, items can be inserted and removed from a queue in O(1) time.