#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; 
}
