📖 Scenario: Imagine you are managing a line of customers waiting to buy tickets at a movie theater. The first person to arrive should be the first person to get the ticket. This is a real-life example of a queue.
🎯 Goal: Build a simple queue using an array in TypeScript to understand how it works and why it is useful for managing things in order.
📋 What You'll Learn
Create an array called queue with initial customers
Create a variable called newCustomer to add to the queue
Add the new customer to the end of the queue
Remove the first customer from the queue to serve them
Print the queue after these operations
💡 Why This Matters
🌍 Real World
Queues are used in places like banks, supermarkets, and computer task scheduling to manage order fairly.
💼 Career
Understanding queues helps in software development for handling tasks, requests, and resources efficiently.
Progress0 / 4 steps
1
Create the initial queue
Create an array called queue with these exact string values: 'Alice', 'Bob', 'Charlie'
DSA Typescript
Hint
Use square brackets to create an array and include the names as strings separated by commas.
2
Add a new customer to the queue
Create a variable called newCustomer and set it to the string 'David'
DSA Typescript
Hint
Use const newCustomer: string = 'David'; to create the variable.
3
Add new customer to the end of the queue and serve the first customer
Use queue.push(newCustomer) to add the new customer to the end of the queue. Then use queue.shift() to remove the first customer from the queue.
DSA Typescript
Hint
Use push to add and shift to remove from the queue.
4
Print the current state of the queue
Use console.log(queue) to print the queue after adding and removing customers.
DSA Typescript
Hint
The queue should now have 'Bob', 'Charlie', and 'David' in order.
Practice
(1/5)
1. Why do we use a Queue data structure instead of just using an array for all cases?
easy
A. Because queues use less memory than arrays.
B. Because arrays cannot store multiple values.
C. Because a queue follows a specific order (FIFO) which is useful for tasks like scheduling.
D. Because arrays do not allow adding elements.
Solution
Step 1: Understand the order of elements in a queue
A queue follows First-In-First-Out (FIFO) order, meaning the first element added is the first to be removed.
Step 2: Compare with arrays and their use cases
Arrays can store multiple values but do not enforce FIFO order automatically. Queues are designed for tasks like scheduling where order matters.
Final Answer:
Because a queue follows a specific order (FIFO) which is useful for tasks like scheduling. -> Option C
Quick Check:
Queue = FIFO order [OK]
Hint: Queues keep order FIFO, arrays don't enforce order [OK]
Common Mistakes:
Thinking arrays can't store multiple values
Confusing memory usage between queues and arrays
Believing arrays don't allow adding elements
2. Which of the following is the correct way to add an element to the end of a queue in TypeScript?
easy
A. queue.push(element);
B. queue.pop(element);
C. queue.shift(element);
D. queue.unshift(element);
Solution
Step 1: Identify the method to add elements at the end of an array
In TypeScript, push() adds an element to the end of an array, which simulates enqueue in a queue.
Step 2: Understand other methods
pop() removes from the end, shift() removes from the start, and unshift() adds to the start, so they don't add to the end.
Final Answer:
queue.push(element); -> Option A
Quick Check:
push() adds to end [OK]
Hint: Use push() to add at queue's end [OK]
Common Mistakes:
Using pop() which removes instead of adds
Using shift() or unshift() incorrectly
Confusing push() with unshift()
3. What will be the output of the following TypeScript code simulating a queue?
D. Using pop() removes from the end, not the front of the queue.
Solution
Step 1: Understand queue removal operation
In a queue, elements are removed from the front (FIFO). Using pop() removes from the end (LIFO), which is incorrect for a queue.
Step 2: Identify the correct method to remove from front
The correct method to remove from the front is shift(), not pop().
Final Answer:
Using pop() removes from the end, not the front of the queue. -> Option D
Quick Check:
pop() removes end, queue needs front removal [OK]
Hint: Use shift() to remove front, not pop() [OK]
Common Mistakes:
Thinking pop() removes from front
Believing push() can't add elements
Assuming console.log can't print arrays
5. You want to process tasks in the order they arrive and also be able to add urgent tasks that should run before others. Which data structure best solves this problem and why?
hard
A. Queue, because it processes tasks in arrival order only.
B. Priority Queue, because it processes tasks based on priority and arrival order.
C. Array, because it allows random access to tasks.
D. Stack, because it processes the most recent task first.
Solution
Step 1: Understand the problem requirements
Tasks must be processed in arrival order, but urgent tasks should run before others, meaning priority matters.
Step 2: Match data structure to requirements
A normal queue processes strictly FIFO, ignoring priority. A stack processes last-in-first-out, which is not suitable. A priority queue processes tasks based on priority and can maintain arrival order among same priority tasks.
Final Answer:
Priority Queue, because it processes tasks based on priority and arrival order. -> Option B
Quick Check:
Priority Queue = priority + order [OK]
Hint: Use priority queue for priority + order tasks [OK]
Common Mistakes:
Choosing queue ignoring priority needs
Confusing stack order with queue order
Thinking array handles priority automatically
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.