#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 data, i;
 enqueue(1);
 enqueue(2);
 dequeue();
 enqueue(3);
 dequeue();
 enqueue(4);
 enqueue(5);
 dequeue();
 for(i=0; i<SIZE; i++){
 printf("queue[%d]=%d¥n", i, queue[i] );
 }
 return 0;
}
void enqueue(int value)
{
 if( head == (tail+1)%SIZE ){
 printf("キューは満杯で入りませんでした¥n");
 }else{
 queue[tail] = value;
 tail = tail + 1;
 }
 tail = tail % SIZE;
}
int dequeue(void)
{
 int value;
 if( head == tail ){
 printf("キューは空で取り出せませんでした¥n");
 return 0;
 }else{
 value = queue[head];
 queue[head] = 0; //抽出後に 0 を代入
 head = head + 1;
 }
 head = head % SIZE;
 return value;
}