29 Nov 2013

Queue

Problem Statement:
        Implement Queue

Solution: 

Given below is the kind of scenario in case of Queue Data structure ,
where items are pushed(en-queue-d) from rear and removed (de-queue-d) from front.


Fig: Example of Queue
Operations supported by Queue data structure are:
1. En-queue:
            It means insertion of elements from rear pointer
2. De-queue:
         It means deletion of items from front pointer.

A Queue supports FIFO operations i.e. First In First Out (FIFO)

Implementation:
-
/**
 * Queue Implementation
 * @author Prateek
 */
public class Queue {
 
 private static int DEFAULT_CAPACITY = 5;
 
 int front;
 int rear;
 int arr[];

 public Queue() {
  arr = new int[DEFAULT_CAPACITY];
  Arrays.fill(arr, -1);
  front = 0;
  rear = 0;
 }

 public Queue(int size) {
  DEFAULT_CAPACITY=size;
  arr = new int[DEFAULT_CAPACITY];
  Arrays.fill(arr, -1);
  front = 0;
  rear = 0;
 }
 
 public void push(int data) {
  rear = (rear) % (DEFAULT_CAPACITY);
  if (arr[rear] == -1) {
   arr[++rear] = data;
   System.out.println("Pushed: " + arr[rear - 1]);
  } else 
   System.out.println("Queue is Full");
 }

 public void pop() {
  int val = arr[front];
  arr[front] = -1;
  front++;
  System.err.println("Poped: " + val);
 }

 public void display() {
  System.out.print("Queue is : \t");
  int i = front;
  while (i <= DEFAULT_CAPACITY) {
   System.out.print(arr[i]+"\t");
   i = (i + 1) % DEFAULT_CAPACITY;
   if (i == rear)
    break;
  }
 }
}
-

References:
http://basicstodatastructures.blogspot.in/2013/10/queue.html from a good friend of mine.

Please post your comments and suggestions

Happy Coding!! :)

No comments:

Post a Comment