Groupon Interview Question
Applications DevelopersCountry: India
class Queue {
int array[];
int size = 0;
int head, tail;
static int counter = 0;
synchronized public void initialize(int sizeofArray) {
size = sizeofArray;
array = new int[sizeofArray];
head = -1;
tail = 0;
}
void enqueue(Integer value) {
System.out.println("enqueue Called....");
if (head == tail) {
System.out.println("Queue is filled");
return;
}
synchronized (this) {
{
if (head == -1)
head = 0;
if(tail==size && head != 0)
{
tail=0;
}
array[tail] = value;
tail++;
counter++;
}
}
}
void dequeue() {
System.out.println("dequeue Called....");
if (head == -1) {
System.out.println("Queue is empty");
return;
}
synchronized (this) {
{
head++;
counter--;
if(head == tail){
head = -1;
tail = 0;
}
}
}
}
public void getQueue() {
System.out.println("GetQueue Called....");
int temp = head;
int temp2 = 0;
for(int i = 0; i < counter; i++)
{
if(head < tail)
{
System.out.println(array[temp]+"\n");
temp++;
if(temp==tail)
break;
}
if(head > tail || head == tail)
{
if(temp != size){
System.out.println(array[temp]+"\n");
temp++;}
if(temp2<tail && temp == size){
System.out.println(array[temp2]+"\n");
temp2++;}
}
}
}
}
public class queueOfArray {
public static void main(String[] args) {
Queue ob1 = new Queue();
ob1.initialize(10);
for (int i = 0 ; i < 10; i++)
ob1.enqueue(i);
ob1.getQueue();
for (int i = 0 ; i < 7; i++)
ob1.dequeue();
ob1.getQueue();
ob1.enqueue(16);
ob1.getQueue();
}
}
- CodeSpace November 07, 2012