chensheng@biheap.com:~$

Queue Array Implementation

// Java program for array implementation of queue 

// A class to represent a queue 
class Queue 
{ 
	int front, rear, size; 
	int capacity; 
	int array[]; 

	public Queue(int capacity) { 
		this.capacity = capacity; 
		front = this.size = 0; 
		rear = capacity - 1; 
		array = new int[this.capacity]; 

	} 

	// Queue is full when size becomes equal to 
	// the capacity 
	boolean isFull(Queue queue) 
	{ return (queue.size == queue.capacity); 
	} 

	// Queue is empty when size is 0 
	boolean isEmpty(Queue queue) 
	{ return (queue.size == 0); } 

	// Method to add an item to the queue. 
	// It changes rear and size 
	void enqueue( int item) 
	{ 
		if (isFull(this)) 
			return; 
		this.rear = (this.rear + 1)%this.capacity; 
		this.array[this.rear] = item; 
		this.size = this.size + 1; 
		System.out.println(item+ " enqueued to queue"); 
	} 

	// Method to remove an item from queue. 
	// It changes front and size 
	int dequeue() 
	{ 
		if (isEmpty(this)) 
			return Integer.MIN_VALUE; 

		int item = this.array[this.front]; 
		this.front = (this.front + 1)%this.capacity; 
		this.size = this.size - 1; 
		return item; 
	} 

	// Method to get front of queue 
	int front() 
	{ 
		if (isEmpty(this)) 
			return Integer.MIN_VALUE; 

		return this.array[this.front]; 
	} 

	// Method to get rear of queue 
	int rear() 
	{ 
		if (isEmpty(this)) 
			return Integer.MIN_VALUE; 

		return this.array[this.rear]; 
	} 
} 


// Driver class 
public class Test 
{ 
	public static void main(String[] args) 
	{ 
		Queue queue = new Queue(1000); 

		queue.enqueue(10); 
		queue.enqueue(20); 
		queue.enqueue(30); 
		queue.enqueue(40); 

		System.out.println(queue.dequeue() + 
				" dequeued from queue\n"); 

		System.out.println("Front item is " + 
				queue.front()); 

		System.out.println("Rear item is " + 
				queue.rear()); 
	} 
} 

// This code is contributed by Gaurav Miglani