Queue Implementation in java :
Standard library in java: java.util.queue:
methods in standard library
//to add element
add() : return true if it success to add otherwise it throw exception.
offer(): return true if it success and false if it fail to add.
// retrieve and remove first element
remove(): throw exception NoSuchElementException if queue is empty
poll(): return null if queue is empty
//give to element but don't remove
element(): throw exception NoSuchElementException if queue is empty
peek(): return null if queue is empty
Queue implementation using:
a) circular array
b) dynamic array
c) linked list
a)Circular array:
package queue;
public class Queue
{
int front;
int rear;
int capacity;
int[] array;
Queue(int size)
{
this.capacity = size;
this.rear = -1;
this.front = -1;
array = new int[capacity];
}
boolean isEmpty()
{
return (front == -1);
}
boolean isFull()
{
return ((rear + 1) % capacity == front);
}
int getQueueSize()
{
if (front == rear)
{
return 0;
}
return (capacity - front + rear + 1) % capacity;
}
boolean enQueue(int data)
{
if (this.isFull())
{
return false;
}
rear = (rear + 1) % capacity;
array[rear] = data;
if (front == -1)
{
front = rear;
}
return true;
}
int deQueue()
{
if (this.isEmpty())
{
return 0;
}
int data = array[front];
if (front == rear)
{
front = rear = -1;
}
else
{
front = (front + 1) % capacity;
}
return data;
}
public static void main(String [] arg)
{
Queue obj = new Queue(5);
System.out.println("Size of queue: " + obj.getQueueSize());
obj.enQueue(3);
obj.enQueue(4);
obj.enQueue(5);
obj.enQueue(6);
obj.enQueue(7);
obj.enQueue(8);
obj.enQueue(9);
obj.enQueue(10);
obj.enQueue(11);
obj.enQueue(12);
System.out.println("Size of queue: " + obj.getQueueSize());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
}
}
Standard library in java: java.util.queue:
methods in standard library
//to add element
add() : return true if it success to add otherwise it throw exception.
offer(): return true if it success and false if it fail to add.
// retrieve and remove first element
remove(): throw exception NoSuchElementException if queue is empty
poll(): return null if queue is empty
//give to element but don't remove
element(): throw exception NoSuchElementException if queue is empty
peek(): return null if queue is empty
Queue implementation using:
a) circular array
b) dynamic array
c) linked list
a)Circular array:
package queue;
public class Queue
{
int front;
int rear;
int capacity;
int[] array;
Queue(int size)
{
this.capacity = size;
this.rear = -1;
this.front = -1;
array = new int[capacity];
}
boolean isEmpty()
{
return (front == -1);
}
boolean isFull()
{
return ((rear + 1) % capacity == front);
}
int getQueueSize()
{
if (front == rear)
{
return 0;
}
return (capacity - front + rear + 1) % capacity;
}
boolean enQueue(int data)
{
if (this.isFull())
{
return false;
}
rear = (rear + 1) % capacity;
array[rear] = data;
if (front == -1)
{
front = rear;
}
return true;
}
int deQueue()
{
if (this.isEmpty())
{
return 0;
}
int data = array[front];
if (front == rear)
{
front = rear = -1;
}
else
{
front = (front + 1) % capacity;
}
return data;
}
public static void main(String [] arg)
{
Queue obj = new Queue(5);
System.out.println("Size of queue: " + obj.getQueueSize());
obj.enQueue(3);
obj.enQueue(4);
obj.enQueue(5);
obj.enQueue(6);
obj.enQueue(7);
obj.enQueue(8);
obj.enQueue(9);
obj.enQueue(10);
obj.enQueue(11);
obj.enQueue(12);
System.out.println("Size of queue: " + obj.getQueueSize());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
System.out.println("data form queue: " + obj.deQueue());
}
}