// Function to add an element to the queue (enqueue)
void enqueue(Queue *q, int value) { if (isFull(q)) { printf("Queue is full. Cannot enqueue %d.\n", value); return; } q->rear = (q->rear + 1) % MAX; q->array[q->rear] = value; q->size++; printf("%d enqueued to queue.\n", value); }
// Function to remove an element from the queue (dequeue)
int dequeue(Queue *q) { if (isEmpty(q)) { printf("Queue is empty. Cannot dequeue.\n"); return -1; // Return a sentinel value to indicate the queue is empty } int value = q->array[q->front]; q->front = (q->front + 1) % MAX; q->size--; return value; }
// Function to get the front element of the queue
int front(Queue *q) { if (isEmpty(q)) { printf("Queue is empty.\n"); return -1; // Return a sentinel value to indicate the queue is empty } return q->array[q->front]; }
// Function to get the rear element of the queue
int rear(Queue *q) { if (isEmpty(q)) { printf("Queue is empty.\n"); return -1; // Return a sentinel value to indicate the queue is empty } return q->array[q->rear]; }
// Function to print the queue elements
void printQueue(Queue *q) { if (isEmpty(q)) { printf("Queue is empty.\n"); return; } printf("Queue elements are:\n"); for (int i = 0; i < q->size; i++) { printf("%d ", q->array[(q->front + i) % MAX]); } printf("\n"); }