// The Queue ADT -- an array implementation import java.io.*; public interface Queue { public void enqueue (int item); public int dequeue(); public int size(); public boolean empty(); public boolean full(); public int front(); } class QueueADT implements Queue { final int MAXSIZE = 100; private int size; private int[] queueADT; private int front = 0; private int rear = -1; public QueueADT () { size = MAXSIZE; queueADT = new int[size]; } public QueueADT (int inputsize) { size = inputsize; queueADT = new int[size]; } public boolean empty () { return (rear < front); } public boolean full () { return (rear == size - 1); } public void enqueue (int number) { rear++; queueADT[rear] = number; } public int dequeue () { int i = queueADT[front]; front++; return i; } public int front () { return queueADT[front]; } public int size () { if (rear == front) return 1; else return (rear + 1 - front); } } class QueueAppl { public static void main (String[] args) throws IOException { BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); System.out.print ("Enter queue size: "); System.out.flush(); int size = Integer.parseInt(stdin.readLine()); QueueADT queue = new QueueADT(size); int i = 2; while (!queue.full()) { queue.enqueue(i); System.out.println (queue.front() + " is the front element."); i = i + 2; } System.out.println ("The current queue contains " + queue.size() + " elements."); while (!queue.empty()) System.out.println (queue.dequeue() + " is dequeued from the queue."); if (queue.empty()) System.out.println ("The queue is empty."); else System.out.println ("There are more elements on the queue."); } }