class MyCircularQueue {
int head;
int tail;
int size;
int[] array;
public MyCircularQueue(int k) {
this.array = new int[k];
this.head = 0;
this.tail = 0;
this.size = 0;
}
public boolean enQueue(int value) {
if(size == array.length){
return false;
}
array[tail] = value;
tail++;
if(tail>=array.length){
tail = 0;
}
size++;
return true;
}
public boolean deQueue() {
if(size == 0){
return false;
}
head++;
if(head>=array.length){
head = 0;
}
size--;
return true;
}
public int Front() {
if(size == 0){
return -1;
}
return array[head];
}
public int Rear() {
if(size == 0){
return -1;
}
if(tail==0){
return array[array.length-1];
}
return array[tail-1];
}
public boolean isEmpty() {
if(size == 0){
return true;
}else{
return false;
}
}
public boolean isFull() {
if(size==array.length){
return true;
}else{
return false;
}
}
}