Queue.ds
#include <stdio.h>
#define N 5
int queue[N];
int front = -1;
int rear = -1;
void enque(int x) {
if(rear == N-1) {
printf("overflow\n");
}
else if(rear == -1 && front == -1) {
front = rear = 0;
queue[rear] = x;
}
else {
rear++;
queue[rear] = x;
}
}
void deque() {
if(front == -1 && rear == -1) {
printf("underflow\n");
}
else if(front == rear) {
printf("%d\n", queue[front]);
front = rear = -1;
}
else {
printf("%d\n", queue[front]);
front++;
}
}
void display() {
if(front == -1 && rear == -1) {
printf("queue is empty\n");
}
else {
for(int i = front; i <= rear; i++) {
printf("%d ", queue[i]);
}
printf("\n");
}
}
void peek() {
if(front == -1 && rear == -1) {
printf("queue is empty\n");
}
else {
printf("%d\n", queue[front]);
}
}
int main() {
enque(2);
enque(5);
enque(-1);
display();
peek();
deque();
peek();
display();
return 0;
}