public class Queue { private Object[] elementsofqueue; private int head = 0; private int tail = 0; private int sizeofqueue = 0; private int capacity; public Queue(int capacityval) { this.capacity = capacityval; elementsofqueue = new Object[capacityval]; } public void enqueue(T item) { if (sizeofqueue == capacity) { System.out.println("Queue is full"); return; } elementsofqueue[tail] = item; tail = (tail + 1) % capacity; sizeofqueue++; } public T dequeue() { if (isEmpty()) { System.out.println("Queue is empty"); return null; } T item = (T) elementsofqueue[head]; head = (head + 1) % capacity; sizeofqueue--; return item; } public boolean isEmpty() { return sizeofqueue == 0; } public int getSize() { return sizeofqueue; } }