package queue;
class Queue
{
private int maxSize;
private long[] queArray;
private int front;
private int rear;
private int nItems;
public Queue(int s)
{
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
public void insert(long j)
{
if(rear == maxSize-1)
rear = -1;
queArray[++rear] = j;
nItems++;
}
public long remove()
{
long temp = queArray[front++];
if(front == maxSize)
front = 0;
nItems--;
return temp;
}
public long peekFront()
{
return queArray[front];
}
public boolean isEmpty()
{
return (nItems==0);
}
public boolean isFull()
{
return (nItems==maxSize);
}
public int size()
{
return nItems;
}
}
class QueueApp
{
public static void main
(String[] args
) {
Queue theQueue = new Queue(5);
theQueue.insert(10);
theQueue.insert(20);
theQueue.insert(30);
theQueue.insert(40);
theQueue.remove();
theQueue.remove();
theQueue.remove();
theQueue.insert(50);
theQueue.insert(60);
theQueue.insert(70);
theQueue.insert(80);
while( !theQueue.isEmpty() )
{
long n = theQueue.remove();
}
}
}
cGFja2FnZSBxdWV1ZTsKCmNsYXNzIFF1ZXVlCgl7CgkJcHJpdmF0ZSBpbnQgbWF4U2l6ZTsKCQlwcml2YXRlIGxvbmdbXSBxdWVBcnJheTsKCQlwcml2YXRlIGludCBmcm9udDsKCQlwcml2YXRlIGludCByZWFyOwoJCXByaXZhdGUgaW50IG5JdGVtczsKCQkKCQlwdWJsaWMgUXVldWUoaW50IHMpIAoJewoJCW1heFNpemUgPSBzOwoJCXF1ZUFycmF5ID0gbmV3IGxvbmdbbWF4U2l6ZV07CgkJZnJvbnQgPSAwOwoJCXJlYXIgPSAtMTsKCQluSXRlbXMgPSAwOwoJfQoKCQlwdWJsaWMgdm9pZCBpbnNlcnQobG9uZyBqKSAKCQl7CgkJCWlmKHJlYXIgPT0gbWF4U2l6ZS0xKSAKCQkJcmVhciA9IC0xOwoJCQlxdWVBcnJheVsrK3JlYXJdID0gajsKCQkJbkl0ZW1zKys7IAoJCX0KCgkJcHVibGljIGxvbmcgcmVtb3ZlKCkKCQl7CgkJCWxvbmcgdGVtcCA9IHF1ZUFycmF5W2Zyb250KytdOyAKCQkJaWYoZnJvbnQgPT0gbWF4U2l6ZSkgCgkJCWZyb250ID0gMDsKCQkJbkl0ZW1zLS07IAoJCQlyZXR1cm4gdGVtcDsKCQl9CgoJCXB1YmxpYyBsb25nIHBlZWtGcm9udCgpIAoJCXsKCQkJcmV0dXJuIHF1ZUFycmF5W2Zyb250XTsKCQl9CgoJCXB1YmxpYyBib29sZWFuIGlzRW1wdHkoKSAKCQl7CgkJCXJldHVybiAobkl0ZW1zPT0wKTsKCQl9CgoJCXB1YmxpYyBib29sZWFuIGlzRnVsbCgpCgoJCXsKCQkJcmV0dXJuIChuSXRlbXM9PW1heFNpemUpOwoJCX0KCgkJcHVibGljIGludCBzaXplKCkgCgkJewoJCQlyZXR1cm4gbkl0ZW1zOwoJCX0KCgl9IAoKCWNsYXNzIFF1ZXVlQXBwCgl7CgkJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKCQl7CgkJCVF1ZXVlIHRoZVF1ZXVlID0gbmV3IFF1ZXVlKDUpOyAKCQkJdGhlUXVldWUuaW5zZXJ0KDEwKTsKCQkJdGhlUXVldWUuaW5zZXJ0KDIwKTsKCQkJdGhlUXVldWUuaW5zZXJ0KDMwKTsKCQkJdGhlUXVldWUuaW5zZXJ0KDQwKTsKCQkJdGhlUXVldWUucmVtb3ZlKCk7CgkJCXRoZVF1ZXVlLnJlbW92ZSgpOyAKCQkJdGhlUXVldWUucmVtb3ZlKCk7CgkJCXRoZVF1ZXVlLmluc2VydCg1MCk7IAoJCQl0aGVRdWV1ZS5pbnNlcnQoNjApOyAKCQkJdGhlUXVldWUuaW5zZXJ0KDcwKTsKCQkJdGhlUXVldWUuaW5zZXJ0KDgwKTsKCQkJd2hpbGUoICF0aGVRdWV1ZS5pc0VtcHR5KCkgKSAKCQkJeyAKCQkJCWxvbmcgbiA9IHRoZVF1ZXVlLnJlbW92ZSgpOyAKCQkJCVN5c3RlbS5vdXQucHJpbnQobik7CgkJCQlTeXN0ZW0ub3V0LnByaW50KCIgIik7CgkJCX0KCQkJU3lzdGVtLm91dC5wcmludGxuKCIiKTsKCQl9Cn0g