/*#include <stdio.h>
int a[100001]={};
//quick_sort(int start, int end) // a[s] ~a[e] 정렬하세요
void qs(int s, int e)
{
int pivot=s,tmp;
if(s>=e) return; //길이가 1이거나 0일때 , 더이상 정렬할 원소가 없을때
int l=s;
int r=e+1;
do
{
do{
l++;
}while(a[pivot]>a[l]);
//a[l]은 a[pivot] 이상인 수
do{
r--;
}while(a[pivot]<a[r]);
// a[r]은 a[pivot]이하인 수
if(l<r){
tmp=a[l];
a[l]=a[r];
a[r]=tmp;
}
}while(l<r);
tmp=a[pivot];
a[pivot]=a[r];
a[r]=tmp;
qs(s,r-1);
qs(r+1,e);
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
scanf("%d", &a[i]);
}
qs(1, n);
for(i=1;i<=n;i++)
{
printf("%d\n", a[i]);
}
return 0;
}
5
2 6 4 1 6
*/
/*#include <stdio.h>
int arr[100001]={};
//arr[i] : i가 입력된 횟수
int main()
{
int n, a, i, j;
scanf("%d", &n);
for(i=0;i<n;i++)
{
scanf("%d", &a);
arr[a]++;
}
for(i=0;i<=100000;i++)
{
for(j=0;j<arr[i];j++)
{
printf("%d ", i);
}
}
return 0;
}*/
#include <stdio.h>
#define SIZE 5
int q[SIZE]= {};
int front=-1,rear=-1;
void enq(int data)
{
rear=(rear+1)%(SIZE);
q[rear]=data;
}
int deq()
{
if(front!=rear)
front=(front+1)%(SIZE);
return q[front];
}
int main()
{
int a, b, c;
while(1){
printf("1. enqueue 2. dequeue 3. view 4. exit >> ");
scanf("%d",&a);
if(a==1){
if(rear-front==SIZE){
printf("큐가 가득 차 있습니다.\n");
}
else{
printf("enq할 데이터를 입력하세요 >> ");
scanf("%d",&b);
enq(b);
}
}
else if(a==2){
if(front==rear){
printf("큐가 비었습니다.\n");
}
else{
printf("deq 데이터는 %d 입니다.\n",deq());
}
}
else if(a==3){
printf("queue >>\n");
for(int i=0;i<SIZE;i++) printf("%2d ",i);
printf("\n");
for(int i=0;i<SIZE;i++) printf("%2d ",q[i]);
printf("\n");
printf("front : %d rear : %d\n",front,rear);
}
else{
printf("프로그램을 종료합니다....\n");
break;
}
}
}