#include <stdio.h>
#define MAX 100
int queue[MAX];
int front = 0;
int rear = 0;
/* enQueue関数 */
int enQueue(int data) {
printf("enQueue開始時: front = %d, rear = %d\n", front
, rear
);
if (rear >= MAX) {
return -1; // 満杯
}
queue[rear] = data;
rear++;
return 0;
}
/* deQueue関数 */
int deQueue(int *data) {
printf("deQueue開始時: front = %d, rear = %d\n", front
, rear
);
if (front == rear) {
return -1; // 空
}
*data = queue[front];
front++;
return 0;
}
/* キューの内容を表示する関数 */
void printQueue() {
int i;
for (i = front; i < rear; i++) {
}
}
/* main関数 */
int main() {
int x;
enQueue(10);
enQueue(20);
enQueue(30);
printQueue();
deQueue(&x);
printQueue();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BWCAxMDAKCmludCBxdWV1ZVtNQVhdOwppbnQgZnJvbnQgPSAwOwppbnQgcmVhciA9IDA7CgovKiBlblF1ZXVl6Zai5pWwICovCmludCBlblF1ZXVlKGludCBkYXRhKSB7CiAgICBwcmludGYoImVuUXVldWXplovlp4vmmYI6IGZyb250ID0gJWQsIHJlYXIgPSAlZFxuIiwgZnJvbnQsIHJlYXIpOwoKICAgIGlmIChyZWFyID49IE1BWCkgewogICAgICAgIHJldHVybiAtMTsgICAvLyDmuoDmna8KICAgIH0KCiAgICBxdWV1ZVtyZWFyXSA9IGRhdGE7CiAgICByZWFyKys7CgogICAgcmV0dXJuIDA7Cn0KCi8qIGRlUXVldWXplqLmlbAgKi8KaW50IGRlUXVldWUoaW50ICpkYXRhKSB7CiAgICBwcmludGYoImRlUXVldWXplovlp4vmmYI6IGZyb250ID0gJWQsIHJlYXIgPSAlZFxuIiwgZnJvbnQsIHJlYXIpOwoKICAgIGlmIChmcm9udCA9PSByZWFyKSB7CiAgICAgICAgcmV0dXJuIC0xOyAgIC8vIOepugogICAgfQoKICAgICpkYXRhID0gcXVldWVbZnJvbnRdOwogICAgZnJvbnQrKzsKCiAgICByZXR1cm4gMDsKfQoKLyog44Kt44Ol44O844Gu5YaF5a6544KS6KGo56S644GZ44KL6Zai5pWwICovCnZvaWQgcHJpbnRRdWV1ZSgpIHsKICAgIGludCBpOwoKICAgIHByaW50ZigiUXVldWUgPSBbICIpOwogICAgZm9yIChpID0gZnJvbnQ7IGkgPCByZWFyOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIHF1ZXVlW2ldKTsKICAgIH0KICAgIHByaW50ZigiXVxuIik7Cn0KCi8qIG1haW7plqLmlbAgKi8KaW50IG1haW4oKSB7CiAgICBpbnQgeDsKCiAgICBlblF1ZXVlKDEwKTsKICAgIGVuUXVldWUoMjApOwogICAgZW5RdWV1ZSgzMCk7CgogICAgcHJpbnRRdWV1ZSgpOwoKICAgIGRlUXVldWUoJngpOwogICAgcHJpbnRmKCLlj5bjgorlh7rjgZfjgZ/lgKQgPSAlZFxuIiwgeCk7CgogICAgcHJpbnRRdWV1ZSgpOwoKICAgIHJldHVybiAwOwp9