package datastructure;
public class Queue {
public static void main(String args[]) {
Queue q=new Queue(4);
q.enQueue(1);
q.enQueue(2);
q.enQueue(3);
q.deQueue();
q.enQueue(4);
q.display();
}
private int maxSize;
private int[] data;
private int head, tail;
public Queue(int maxSize) {
this.maxSize = maxSize;
data = new int[maxSize];
head = 0;
tail = 0;
}
public boolean enQueue(int x) {
if (!full()) {
data[tail] = x;
tail=(tail+1)%maxSize;
return true;
} else
return false;
}
public int deQueue() {
if(!empty()){
head=(head+1)%maxSize;
return data[head-1];
}
else
return -255;
}
public boolean empty() {
if (head == tail)
return true;
else
return false;
}
public boolean full() {
if (head == (tail + 1) % maxSize)
return true;
else
return false;
}
public void display() {
int i=head;
while(i!=tail){
System.out.print(data[i]+" ");
i=(i+1)%maxSize;
}
}
}