#include <stdio.h>
#define SIZE 100
int queue[SIZE];
int front = -1, rear = -1;
void enqueue(int value) {
if ((rear + 1) % SIZE == front) {
}
else if (front == -1 && rear == -1) {
front = rear = 0;
queue[rear] = value;
printf("%d enqueued\n", value
); }
else {
rear = (rear + 1) % SIZE;
queue[rear] = value;
printf("%d enqueued\n", value
); }
}
void dequeue() {
if (front == -1 && rear == -1) {
}
else if (front == rear) {
printf("%d dequeued\n", queue
[front
]); front = rear = -1;
}
else {
printf("%d dequeued\n", queue
[front
]); front++;
}
}
void display() {
for (int i = front; i < rear + 1; i++) {
}
}
void peak()
{
printf("Peak element is %d\n", queue
[front
]); }
int main() {
enqueue(10);
enqueue(20);
enqueue(30);
display();
dequeue();
display();
enqueue(40);
display();
peak();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMDAKCmludCBxdWV1ZVtTSVpFXTsKaW50IGZyb250ID0gLTEsIHJlYXIgPSAtMTsKCnZvaWQgZW5xdWV1ZShpbnQgdmFsdWUpIHsKICAgIGlmICgocmVhciArIDEpICUgU0laRSA9PSBmcm9udCkgewogICAgICAgIHByaW50ZigiT3ZlcmZsb3dcbiIpOwogICAgfQogICAgZWxzZSBpZiAoZnJvbnQgPT0gLTEgJiYgcmVhciA9PSAtMSkgewogICAgICAgIGZyb250ID0gcmVhciA9IDA7CiAgICAgICAgcXVldWVbcmVhcl0gPSB2YWx1ZTsKICAgICAgICBwcmludGYoIiVkIGVucXVldWVkXG4iLCB2YWx1ZSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZWFyID0gKHJlYXIgKyAxKSAlIFNJWkU7CiAgICAgICAgcXVldWVbcmVhcl0gPSB2YWx1ZTsKICAgICAgICBwcmludGYoIiVkIGVucXVldWVkXG4iLCB2YWx1ZSk7CiAgICB9Cn0KCnZvaWQgZGVxdWV1ZSgpIHsKICAgIGlmIChmcm9udCA9PSAtMSAmJiByZWFyID09IC0xKSB7CiAgICAgICAgcHJpbnRmKCJVbmRlcmZsb3dcbiIpOwogICAgfQogICAgZWxzZSBpZiAoZnJvbnQgPT0gcmVhcikgewogICAgICAgIHByaW50ZigiJWQgZGVxdWV1ZWRcbiIsIHF1ZXVlW2Zyb250XSk7CiAgICAgICAgZnJvbnQgPSByZWFyID0gLTE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBwcmludGYoIiVkIGRlcXVldWVkXG4iLCBxdWV1ZVtmcm9udF0pOwogICAgICAgIGZyb250Kys7CiAgICB9Cn0KCnZvaWQgZGlzcGxheSgpIHsKICAgIHByaW50ZigiUXVldWUgZWxlbWVudHM6ICIpOwogICAgZm9yIChpbnQgaSA9IGZyb250OyBpIDwgcmVhciArIDE7IGkrKykgewogICAgICAgIHByaW50ZigiJWQgIiwgcXVldWVbaV0pOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9CnZvaWQgcGVhaygpCnsKICAgIHByaW50ZigiUGVhayBlbGVtZW50IGlzICVkXG4iLCBxdWV1ZVtmcm9udF0pOwp9CgppbnQgbWFpbigpIHsKICAgIGVucXVldWUoMTApOwogICAgZW5xdWV1ZSgyMCk7CiAgICBlbnF1ZXVlKDMwKTsKICAgIGRpc3BsYXkoKTsKICAgIGRlcXVldWUoKTsKICAgIGRpc3BsYXkoKTsKICAgIGVucXVldWUoNDApOwogICAgZGlzcGxheSgpOwogICAgcGVhaygpOwoKICAgIHJldHVybiAwOwp9Cg==