Bird
0
0
DSA Cprogramming~20 mins

Enqueue Operation in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Enqueue Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Enqueue in Circular Queue
What is the output of the following C code after performing two enqueue operations on an initially empty circular queue of size 3?
DSA C
#include <stdio.h>
#define SIZE 3

int queue[SIZE];
int front = -1, rear = -1;

void enqueue(int value) {
    if ((rear + 1) % SIZE == front) {
        printf("Queue is full\n");
        return;
    }
    if (front == -1) front = 0;
    rear = (rear + 1) % SIZE;
    queue[rear] = value;
}

void printQueue() {
    if (front == -1) {
        printf("Queue is empty\n");
        return;
    }
    int i = front;
    while (1) {
        printf("%d ", queue[i]);
        if (i == rear) break;
        i = (i + 1) % SIZE;
    }
    printf("\n");
}

int main() {
    enqueue(10);
    enqueue(20);
    printQueue();
    return 0;
}
AQueue is empty
B20 10
CQueue is full
D10 20
Attempts:
2 left
💡 Hint
Remember how circular queue updates rear and front indices.
Predict Output
intermediate
2:00remaining
State of Queue After Enqueue Operations
Given the following C code for a queue implemented with an array, what will be the printed queue after these enqueue operations?
DSA C
#include <stdio.h>
#define MAX 4

int queue[MAX];
int front = -1, rear = -1;

void enqueue(int val) {
    if (rear == MAX - 1) {
        printf("Queue is full\n");
        return;
    }
    if (front == -1) front = 0;
    rear++;
    queue[rear] = val;
}

void printQueue() {
    if (front == -1) {
        printf("Queue is empty\n");
        return;
    }
    for (int i = front; i <= rear; i++) {
        printf("%d ", queue[i]);
    }
    printf("\n");
}

int main() {
    enqueue(5);
    enqueue(15);
    enqueue(25);
    printQueue();
    return 0;
}
AQueue is full
B15 25
C5 15 25
DQueue is empty
Attempts:
2 left
💡 Hint
Check how rear and front indices change after each enqueue.
🔧 Debug
advanced
2:00remaining
Identify the Bug in Enqueue Function
What error will occur when running this enqueue function in C for a queue implemented with an array?
DSA C
#define SIZE 3
int queue[SIZE];
int front = -1, rear = -1;

void enqueue(int val) {
    if (rear == SIZE) {
        printf("Queue is full\n");
        return;
    }
    if (front == -1) front = 0;
    rear++;
    queue[rear] = val;
}
AArray index out of bounds error
BQueue is full message printed prematurely
CNo error, works fine
DCompilation error due to missing semicolon
Attempts:
2 left
💡 Hint
Check the condition that stops enqueue when queue is full.
Predict Output
advanced
2:00remaining
Output After Multiple Enqueue and Dequeue in Circular Queue
What will be the output of the queue after these operations on a circular queue of size 4?
DSA C
#include <stdio.h>
#define SIZE 4

int queue[SIZE];
int front = -1, rear = -1;

void enqueue(int val) {
    if ((rear + 1) % SIZE == front) {
        printf("Queue is full\n");
        return;
    }
    if (front == -1) front = 0;
    rear = (rear + 1) % SIZE;
    queue[rear] = val;
}

void dequeue() {
    if (front == -1) {
        printf("Queue is empty\n");
        return;
    }
    if (front == rear) {
        front = rear = -1;
    } else {
        front = (front + 1) % SIZE;
    }
}

void printQueue() {
    if (front == -1) {
        printf("Queue is empty\n");
        return;
    }
    int i = front;
    while (1) {
        printf("%d ", queue[i]);
        if (i == rear) break;
        i = (i + 1) % SIZE;
    }
    printf("\n");
}

int main() {
    enqueue(1);
    enqueue(2);
    enqueue(3);
    dequeue();
    enqueue(4);
    printQueue();
    return 0;
}
A1 2 3 4
B2 3 4
CQueue is full
DQueue is empty
Attempts:
2 left
💡 Hint
Remember how front and rear move in circular queue after dequeue and enqueue.
🧠 Conceptual
expert
2:00remaining
Maximum Number of Enqueue Operations in Circular Queue
Consider a circular queue implemented with an array of size N. If the queue is initially empty, what is the maximum number of enqueue operations that can be performed before the queue is full?
AN - 1
BN
CN + 1
DN / 2
Attempts:
2 left
💡 Hint
Think about how circular queue uses one slot to distinguish full from empty.