Bird
Raised Fist0
DSA C#programming~30 mins

Queue Implementation Using Array in DSA C# - Build from Scratch

Choose your learning style10 modes available
Queue Implementation Using Array
📖 Scenario: You are managing a line of customers waiting to be served at a coffee shop. You want to keep track of the order in which customers arrive and serve them one by one.
🎯 Goal: Build a simple queue using an array to add customers to the line and remove them when served, showing the queue state after each operation.
📋 What You'll Learn
Create an array to hold the queue elements
Use variables to track the front and rear positions in the queue
Implement enqueue operation to add elements to the queue
Implement dequeue operation to remove elements from the queue
Print the queue elements in order after operations
💡 Why This Matters
🌍 Real World
Queues are used in real life to manage lines, like customers waiting at a store or tasks waiting to be processed.
💼 Career
Understanding queues helps in software development for managing tasks, requests, and resources efficiently.
Progress0 / 4 steps
1
Create the queue array and initialize front and rear
Create an integer array called queue with size 5. Create two integer variables called front and rear and set both to -1.
DSA C#
Hint

Use int[] queue = new int[5]; to create the array. Set front and rear to -1 to show the queue is empty.

2
Add a customer to the queue (enqueue)
Write code to add a customer with ID 101 to the queue. Increase rear by 1 and assign queue[rear] to 101. If front is -1, set it to 0.
DSA C#
Hint

Increase rear first, then add the customer ID to queue[rear]. Set front to 0 if queue was empty.

3
Remove a customer from the queue (dequeue)
Write code to remove the customer at the front of the queue. Store the removed customer ID from queue[front] into a variable called removedCustomer. Then increase front by 1. If front becomes greater than rear, reset both front and rear to -1.
DSA C#
Hint

Store the removed customer ID before moving front. Reset front and rear if queue becomes empty.

4
Print the current queue elements
Write a for loop to print all customer IDs in the queue from front to rear separated by spaces. If the queue is empty (front is -1), print "Queue is empty".
DSA C#
Hint

Check if front is -1 to print empty message. Otherwise, loop from front to rear and print each element.

Practice

(1/5)
1. What is the main characteristic of a queue implemented using an array?
easy
A. It removes elements from the end only.
B. It allows random access to elements.
C. It stores elements in sorted order automatically.
D. It follows First-In-First-Out (FIFO) order.

Solution

  1. Step 1: Understand queue behavior

    A queue adds elements at the rear and removes from the front, following FIFO order.
  2. Step 2: Compare options with queue properties

    Only It follows First-In-First-Out (FIFO) order. correctly describes FIFO behavior; others describe different data structures or incorrect behavior.
  3. Final Answer:

    It follows First-In-First-Out (FIFO) order. -> Option D
  4. Quick Check:

    Queue = FIFO order [OK]
Hint: Remember queue = first in, first out [OK]
Common Mistakes:
  • Confusing queue with stack (LIFO)
  • Thinking queue allows random access
  • Assuming queue sorts elements automatically
2. Which of the following is the correct way to declare a queue array of size 5 in C#?
easy
A. int queue = new int[5];
B. int queue[] = new int(5);
C. int[] queue = new int[5];
D. int[] queue = int[5];

Solution

  1. Step 1: Recall C# array declaration syntax

    In C#, arrays are declared as type[] name = new type[size];
  2. Step 2: Check each option

    int[] queue = new int[5]; matches correct syntax; others have syntax errors or wrong usage.
  3. Final Answer:

    int[] queue = new int[5]; -> Option C
  4. Quick Check:

    C# array declaration = int[] name = new int[size] [OK]
Hint: Use type[] name = new type[size] for arrays [OK]
Common Mistakes:
  • Missing [] after type
  • Using parentheses instead of brackets
  • Assigning array without new keyword
3. Consider this C# code for a queue using an array of size 3:
int[] queue = new int[3];
int front = -1, rear = -1;

// Enqueue 10
rear++;
queue[rear] = 10;
if(front == -1) front = 0;

// Enqueue 20
rear++;
queue[rear] = 20;

// Dequeue
int val = queue[front];
front++;

// Enqueue 30
rear++;
queue[rear] = 30;

// Current queue elements from front to rear?
medium
A. [10, 20, 30]
B. [20, 30]
C. [30]
D. [10, 30]

Solution

  1. Step 1: Trace enqueue and dequeue operations

    Enqueue 10: rear=0, front=0, queue=[10,_,_] Enqueue 20: rear=1, queue=[10,20,_] Dequeue: val=queue[front]=10, front=1 Enqueue 30: rear=2, queue=[10,20,30]
  2. Step 2: Identify current queue elements

    Front=1, rear=2, so elements are queue[1]=20 and queue[2]=30
  3. Final Answer:

    [20, 30] -> Option B
  4. Quick Check:

    After dequeue front=1, queue elements = [20, 30] [OK]
Hint: Track front and rear indexes carefully [OK]
Common Mistakes:
  • Not updating front after dequeue
  • Including dequeued elements in output
  • Confusing front and rear positions
4. What is the error in this queue enqueue method using array?
void Enqueue(int[] queue, ref int rear, int value, int size) {
  if (rear == size) {
    Console.WriteLine("Queue is full");
    return;
  }
  rear++;
  queue[rear] = value;
}
medium
A. rear should be checked against size - 1, not size.
B. rear should be incremented after assigning value.
C. The method should check if rear is less than zero.
D. The queue array should be resized inside the method.

Solution

  1. Step 1: Analyze boundary check for full queue

    Array indices go from 0 to size-1, so rear == size means out of bounds.
  2. Step 2: Correct condition for full queue

    Check if rear == size - 1 before enqueue to avoid overflow.
  3. Final Answer:

    rear should be checked against size - 1, not size. -> Option A
  4. Quick Check:

    Array max index = size - 1 [OK]
Hint: Array max index = size - 1, check accordingly [OK]
Common Mistakes:
  • Checking rear == size causes index out of range
  • Incrementing rear before check
  • Ignoring array bounds in enqueue
5. You want to implement a circular queue using an array of size 4. Initially, front = -1 and rear = -1. After these operations:
Enqueue(5)
Enqueue(10)
Enqueue(15)
Dequeue()
Enqueue(20)
Enqueue(25)
What will be the state of the queue array and the values of front and rear?
hard
A. Queue: [25, 10, 15, 20], front=1, rear=0
B. Queue: [5, 10, 15, 20], front=0, rear=3
C. Queue: [20, 25, 15, 10], front=2, rear=1
D. Queue: [10, 15, 20, 25], front=0, rear=3

Solution

  1. Step 1: Perform each operation with circular logic

    Enqueue 5: front=0, rear=0, queue=[5,_,_,_] Enqueue 10: rear=1, queue=[5,10,_,_] Enqueue 15: rear=2, queue=[5,10,15,_] Dequeue: front=1 (removed 5) Enqueue 20: rear=3, queue=[5,10,15,20] Enqueue 25: rear wraps to 0, queue=[25,10,15,20]
  2. Step 2: Final front and rear positions

    front=1, rear=0, queue array = [25,10,15,20]
  3. Final Answer:

    Queue: [25, 10, 15, 20], front=1, rear=0 -> Option A
  4. Quick Check:

    Circular queue wraps rear index [OK]
Hint: Remember rear wraps to 0 in circular queue [OK]
Common Mistakes:
  • Not wrapping rear index after reaching end
  • Not updating front after dequeue
  • Assuming linear queue behavior
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard