- #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 ){  
-     }else{  
-         queue[tail] = value;  
-         tail = tail + 1;  
-     }  
-     tail = tail % SIZE;  
- }  
-   
- int dequeue(void)  
- {  
-     int value;  
-     if( head == tail ){  
-         return 0;  
-     }else{  
-         value = queue[head];  
-         queue[head] = 0;        //抽出後に0を代入  
-         head = head + 1;  
-     }  
-     head = head % SIZE;  
-     return value;  
- }  
-   
				I2luY2x1ZGU8c3RkaW8uaD4gCiAKI2RlZmluZSBTSVpFIDUgCmludCBxdWV1ZVtTSVpFXTsgCmludCBoZWFkLCB0YWlsOyAKIAp2b2lkIGVucXVldWUoaW50IHZhbHVlKTsgCmludCBkZXF1ZXVlKHZvaWQpOyAKIAppbnQgbWFpbih2b2lkKSAKeyAKICAgIGhlYWQgPSB0YWlsID0gMDsgICAgLy/liJ3mnJ/ljJYgCiAgICBpbnQgZGF0YSwgaTsgCiAKICAgIGVucXVldWUoMSk7IAogICAgZW5xdWV1ZSgyKTsgCiAgICBkZXF1ZXVlKCk7IAogICAgZW5xdWV1ZSgzKTsgCiAgICBkZXF1ZXVlKCk7IAogICAgZW5xdWV1ZSg0KTsgCiAgICBlbnF1ZXVlKDUpOyAKICAgIGRlcXVldWUoKTsgCiAgICBmb3IoaT0wOyBpPFNJWkU7IGkrKyl7IAogICAgICBwcmludGYoInF1ZXVlWyVkXT0lZMKlbiIsIGksIHF1ZXVlW2ldICk7IAogICAgfSAKIAogICAgcmV0dXJuIDA7IAp9IAogCnZvaWQgZW5xdWV1ZShpbnQgdmFsdWUpIAp7IAogICAgaWYoIGhlYWQgPT0gKHRhaWwrMSklU0laRSApeyAKICAgICAgICBwcmludGYoIuOCreODpeODvOOBr+a6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn8KlbiIpOyAKICAgIH1lbHNleyAKICAgICAgICBxdWV1ZVt0YWlsXSA9IHZhbHVlOyAKICAgICAgICB0YWlsID0gdGFpbCArIDE7IAogICAgfSAKICAgIHRhaWwgPSB0YWlsICUgU0laRTsgCn0gCiAKaW50IGRlcXVldWUodm9pZCkgCnsgCiAgICBpbnQgdmFsdWU7IAogICAgaWYoIGhlYWQgPT0gdGFpbCApeyAKICAgICAgICBwcmludGYoIuOCreODpeODvOOBr+epuuOBp+WPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBn8KlbiIpOyAKICAgICAgICByZXR1cm4gMDsgCiAgICB9ZWxzZXsgCiAgICAgICAgdmFsdWUgPSBxdWV1ZVtoZWFkXTsgCiAgICAgICAgcXVldWVbaGVhZF0gPSAwOyAgICAgICAgLy/mir3lh7rlvozjgasw44KS5Luj5YWlIAogICAgICAgIGhlYWQgPSBoZWFkICsgMTsgCiAgICB9IAogICAgaGVhZCA9IGhlYWQgJSBTSVpFOyAKICAgIHJldHVybiB2YWx1ZTsgCn0gCg==