Java Dynamic Queue Using Array
Chapter:
Data Structures
Last Updated:
26-09-2018 03:34:58 UTC
Program:
/* ............... START ............... */
public class JavaDynamicQueue {
private int capacity = 2;
int queueArr[];
int front = 0;
int rear = -1;
int currentSize = 0;
public JavaDynamicQueue() {
queueArr = new int[this.capacity];
}
public void enqueue(int item) {
if (isQueueFull()) {
System.out.println("Queue is full, increase capacity...");
increaseCapacity();
}
rear++;
if (rear >= queueArr.length && currentSize != queueArr.length) {
rear = 0;
}
queueArr[rear] = item;
currentSize++;
System.out.println("Adding: " + item);
}
public void dequeue() {
if (isQueueEmpty()) {
System.out.println("Underflow ! Unable to remove element from Queue");
} else {
front++;
if (front > queueArr.length - 1) {
System.out.println("removed: " + queueArr[front - 1]);
front = 0;
} else {
System.out.println("removed: " + queueArr[front - 1]);
}
currentSize--;
}
}
public boolean isQueueFull() {
boolean status = false;
if (currentSize == queueArr.length) {
status = true;
}
return status;
}
public boolean isQueueEmpty() {
boolean status = false;
if (currentSize == 0) {
status = true;
}
return status;
}
private void increaseCapacity() {
int newCapacity = this.queueArr.length * 2;
int[] newArr = new int[newCapacity];
int tmpFront = front;
int index = -1;
while (true) {
newArr[++index] = this.queueArr[tmpFront];
tmpFront++;
if (tmpFront == this.queueArr.length) {
tmpFront = 0;
}
if (currentSize == index + 1) {
break;
}
}
this.queueArr = newArr;
System.out.println("New array capacity: " + this.queueArr.length);
this.front = 0;
this.rear = index;
}
public static void main(String a[]) {
JavaDynamicQueue queue = new JavaDynamicQueue();
queue.enqueue(4);
queue.dequeue();
queue.enqueue(56);
queue.enqueue(2);
queue.enqueue(67);
queue.dequeue();
queue.enqueue(24);
queue.enqueue(98);
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.enqueue(435);
queue.dequeue();
queue.dequeue();
}
}
/* ............... END ............... */
Output
Adding: 4
removed: 4
Adding: 56
Adding: 2
Queue is full, increase capacity...
New array capacity: 4
Adding: 67
removed: 56
Adding: 24
Adding: 98
removed: 2
removed: 67
removed: 24
Adding: 435
removed: 98
removed: 435
Notes:
-
A queue is a kind of abstract data type or collection in which the entities in the collection are kept in order and the only operations on the collection are the addition of entities to the rear terminal position, called as enqueue, and removal of entities from the front terminal position, called as dequeue.
Tags
Dynamic Queue Using Array, Java, Data Structures, queue implementation in java using array, queue and dequeue implementation in java, array queue java, dynamic implementation of queue in data structure, java queue example