Queue is a kind of Abstract data structure that holds items in same order. Queue follow FIFO mechanism for operations like insertion and deletion of items.
Note :
- One end is always used to insert data called enqueue.
- Other end is always used to delete data called dequeue.
- So Adding an item to the rear and deleting an item from front of queue.
Time complexity always constant that is O(1).
Implement queue using array :
public class QueueOperations {
private int storageCapacity;
private int[] queueArr;
private int rear = -1;
private int front = 0;
private int size = 0;
QueueOperations(int capacity){
storageCapacity = capacity;
queueArr = new int[storageCapacity];
}
public void addItem(int item){
if (size == storageCapacity){
Log.e(" overflow ::" ," queue overflow condition .");
}else {
rear++;
if (rear == size - 1) {
rear = 0;
front = 0;
}
queueArr[rear] = item;
size++;
}
}
public void removeItem(){
if (size == 0){
Log.e(" underflow ::" ," queue underflow condition .");
}else{
front++;
if (front == rear){
front = 0;
rear = 0;
}
size--;
}
}
public void peek(){
if (size == -1){
Log.e(" queue empty"," queue empty");
}else{
Log.e(" queue size"," :: " + size);
Log.e(" queue front at "," :: " + front);
Log.e(" queue rear at"," :: " + rear);
Log.e(" ----------------------- ","--------------- ");
for (int i =front ; i<=rear;i++){
Log.e(" queue data"," :: " + queueArr[i]);
}
}
}
}
0 Comment(s)