Mental Model
Adding an item to the end of a line so it waits its turn.
Analogy: Imagine a queue at a ticket counter where new people join at the back of the line.
front -> null rear -> null
front -> null rear -> null
front -> [10] -> null rear -> [10]
front -> 10 -> [20] -> null rear -> [20]
front -> 10 -> 20 -> [30] -> null rear -> [30]
front -> 10 -> 20 -> 30 -> null rear -> [30]
using System; public class Node { public int Data; public Node Next; public Node(int data) { Data = data; Next = null; } } public class Queue { private Node front; private Node rear; public Queue() { front = null; rear = null; } public void Enqueue(int value) { Node newNode = new Node(value); if (rear == null) // queue empty { front = newNode; // first node is front rear = newNode; // and rear return; } rear.Next = newNode; // link new node after rear rear = newNode; // update rear to new node } public void PrintQueue() { Node current = front; while (current != null) { Console.Write(current.Data); if (current.Next != null) Console.Write(" -> "); current = current.Next; } Console.WriteLine(" -> null"); } } public class Program { public static void Main() { Queue q = new Queue(); q.Enqueue(10); q.Enqueue(20); q.Enqueue(30); q.PrintQueue(); } }
if (rear == null) // queue emptyfront = newNode; // first node is front
rear = newNode; // and rearrear.Next = newNode; // link new node after rearrear = newNode; // update rear to new nodeif (rear == null) // queue emptyEnqueue operation do in a queue data structure?Queue<int> named q in C#?Enqueue.q.Enqueue(10); adds 10 to the queue correctly.Queue<string> q = new Queue<string>();
q.Enqueue("apple");
q.Enqueue("banana");
q.Enqueue("cherry");
Console.WriteLine(string.Join(", ", q));Queue<int> q = new Queue<int>(); q.Enqueue(5); q.Enqueue(10); q.Enqueue(15); q.Enqueue();
q.Enqueue(); has no argument, but Enqueue requires one.q with elements [1, 2, 3]. You want to enqueue elements 4 and 5, but only if the queue size is less than 5. Which code snippet correctly performs this conditional enqueue operation in C#?q.Count < 5.Pass the test and this pattern moves unknown