////////////////큐//////////////
*/
//basic queue
/*
#include <stdio.h>
int queue[50];
int front=-1,rear=-1;
//front : 마지막으로 나간 데이터의 위치
//rear : 마지막으로 입력된 데이터의 위치 (top)
void enq(int data)
{
queue[++rear]=data;
}
int deq()
{
if(front==rear) return -1;
return queue[++front];
}
*/
/* cqueue test
#include <stdio.h>
#define SIZE 5
int cqueue[SIZE]={};
int front=0,rear=0;
//front : 마지막으로 나간 데이터의 위치
//rear : 마지막으로 입력된 데이터의 위치 (top)
void enq(int data)
{
if((rear+1)%SIZE==front)// 돌아온 rear가 front 자리에는 data 입력X
{
printf("queue is full!!\n");
return ;
}
rear=(rear+1)%SIZE;
cqueue[rear]=data;
}
int deq()
{
int t;
if(front==rear) return -1;
front=(front+1)%SIZE;
t=cqueue[front];
cqueue[front]=0;
return t;
}
void view()
{
int i;
printf("queue >>");
for(i=0;i<SIZE;i++)
{
printf("%d ",cqueue[i]);
}
printf(" , front = %d, rear = %d\n",front,rear);
}
int main() {
int a,b,c,d;
while(1)
{
printf("1.enq 2.deq 3.view >>");
scanf("%d",&a);
if(a==1)
{
printf("enq data >>");
scanf("%d",&b);
enq(b);
view();
}
else if(a==2)
{
b=deq();
if(b==-1)
{
printf("queue is empty!\n");
}
else
{
printf("deq data >> %d\n",b);
view();
}
}
else
{
view();
}
}
}
*/