#include <stdio.h>
#define SIZE 5
int queue[SIZE];
int head, tail;
void enqueue(int value);
int dequeue(void);
int main(void)
{
head=tail=0;
int resp,data, i;
while(1){
printf("1:enqueue 2:dequeue 0:end : ");scanf("%d",&resp
);
if(!resp) break;
switch(resp){
enqueue(data);
break;
case 2: dequeue();
break;
}
printf("head=%d, tail=%d\n",head
,tail
); }
i=head;
while(i!=tail){
printf("queue[%d]=%d\n",i
,queue
[i
]); i++;
i=i%SIZE;
}
return 0;
}
void enqueue(int value)
{
if(head==(tail+1)%SIZE){
}else{
queue[tail++]=value;
}
tail=tail%SIZE;
}
int dequeue(void)
{
int value;
if(head==tail){
return 0;
}else{
value=queue[head++];
}
head=head%SIZE;
return value;
}
// your code goes here
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgcXVldWVbU0laRV07CmludCBoZWFkLCB0YWlsOwoKdm9pZCBlbnF1ZXVlKGludCB2YWx1ZSk7CmludCBkZXF1ZXVlKHZvaWQpOwoKaW50IG1haW4odm9pZCkKewoJaGVhZD10YWlsPTA7CglpbnQgcmVzcCxkYXRhLCBpOwoJCgl3aGlsZSgxKXsKCQlwcmludGYoIjE6ZW5xdWV1ZSAyOmRlcXVldWUgMDplbmQgOiAiKTtzY2FuZigiJWQiLCZyZXNwKTsKCQkKCQlpZighcmVzcCkgYnJlYWs7CgkJCgkJc3dpdGNoKHJlc3ApewoJCQljYXNlIDE6IHByaW50ZigiZW5xdWV1ZTogIik7IHNjYW5mKCIlZCIsJmRhdGEpOwoJCQkgICAgICAgIGVucXVldWUoZGF0YSk7CgkJCSAgICAgICAgYnJlYWs7CgkJCWNhc2UgMjogZGVxdWV1ZSgpOwoJCQkgICAgICAgIGJyZWFrOwoJCX0KCQlwcmludGYoImhlYWQ9JWQsIHRhaWw9JWRcbiIsaGVhZCx0YWlsKTsKCX0KCXByaW50ZigiXG4iKTsKCWk9aGVhZDsKCXdoaWxlKGkhPXRhaWwpewoJCXByaW50ZigicXVldWVbJWRdPSVkXG4iLGkscXVldWVbaV0pOwoJCWkrKzsKCQlpPWklU0laRTsKCX0KCXJldHVybiAwOwp9Cgp2b2lkIGVucXVldWUoaW50IHZhbHVlKQp7CglpZihoZWFkPT0odGFpbCsxKSVTSVpFKXsKCQlwcmludGYoIuOCreODpeODvOOBr+a6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7Cgl9ZWxzZXsKCQlxdWV1ZVt0YWlsKytdPXZhbHVlOwoJfQoJdGFpbD10YWlsJVNJWkU7Cn0KCmludCBkZXF1ZXVlKHZvaWQpCnsKCWludCB2YWx1ZTsKCWlmKGhlYWQ9PXRhaWwpewoJCXByaW50Zigi44Kt44Ol44O844Gv56m644Gn5Y+W44KK5Ye644Gb44G+44Gb44KT44Gn44GX44GfXG4iKTsKCQlyZXR1cm4gMDsKCX1lbHNlewoJCXZhbHVlPXF1ZXVlW2hlYWQrK107Cgl9CgloZWFkPWhlYWQlU0laRTsKCXJldHVybiB2YWx1ZTsKfQoKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCg==