📖 Scenario: Imagine you are managing a line of customers waiting to buy tickets at a movie theater. You want to keep track of who is next in line and who has already been served.
🎯 Goal: You will build a simple queue using an array in TypeScript. You will add customers to the line, remove them when they buy tickets, and see the current state of the line.
📋 What You'll Learn
Create an array to represent the queue
Add a variable to track the maximum size of the queue
Write code to add customers to the queue (enqueue)
Write code to remove customers from the queue (dequeue)
Print the queue after operations to show the current line
💡 Why This Matters
🌍 Real World
Queues are used in many places like lines at stores, print job management, and task scheduling.
💼 Career
Understanding queues helps in software development roles that involve managing ordered tasks or requests.
Progress0 / 4 steps
1
Create the queue array
Create an empty array called queue to hold the customers waiting in line.
DSA Typescript
Hint
Use const queue: string[] = []; to create an empty array for strings.
2
Set the maximum queue size
Create a variable called maxSize and set it to 5 to limit how many customers can wait in line.
DSA Typescript
Hint
Use const maxSize: number = 5; to set the queue limit.
3
Add customers to the queue
Write code to add these customers to the queue array in order: 'Alice', 'Bob', 'Charlie'. Use the push method.
DSA Typescript
Hint
Use queue.push('Name'); to add each customer.
4
Remove a customer and print the queue
Remove the first customer from the queue using shift(). Then print the current state of the queue using console.log(queue).
DSA Typescript
Hint
Use queue.shift(); to remove the first customer and console.log(queue); to print the queue.
Practice
(1/5)
1. What is the main characteristic of a queue data structure implemented using an array?
easy
A. It stores elements in sorted order automatically
B. It follows Last-In-First-Out (LIFO) order
C. It allows random access to elements
D. It follows First-In-First-Out (FIFO) order
Solution
Step 1: Understand queue behavior
A queue adds elements at the rear and removes from the front, so the first element added is the first removed.
Step 2: Compare with options
FIFO means First-In-First-Out, which matches queue behavior. LIFO is for stacks, random access is for arrays, and sorting is unrelated.
Final Answer:
It follows First-In-First-Out (FIFO) order -> Option D
Quick Check:
Queue = FIFO [OK]
Hint: Queue always removes the oldest element first [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 add an element `x` to the rear of a queue implemented as an array named `queue` in TypeScript?
easy
A. queue.unshift(x);
B. queue.push(x);
C. queue.shift(x);
D. queue.pop(x);
Solution
Step 1: Identify array methods for queue operations
To add at the rear of the queue, we use the array method that appends elements at the end, which is push().
Step 2: Check each option
push(x) adds x at the end; pop() removes from end; shift() removes from front; unshift() adds at front.
Final Answer:
queue.push(x); -> Option B
Quick Check:
Enqueue = push() [OK]
Hint: Use push() to add at the end of array [OK]
Common Mistakes:
Using pop() which removes instead of adds
Using shift() or unshift() incorrectly for enqueue
Confusing push() with unshift()
3. What will be the output of the following TypeScript code implementing a queue using an array?
Queue removes elements from the front (FIFO). Using pop() removes from the rear (last element), which breaks FIFO.
Step 2: Check code behavior
pop() removes last element (2), but queue should remove first element (1) using shift().
Final Answer:
Using pop() removes from rear, not front -> Option C
Quick Check:
Dequeue = shift(), not pop() [OK]
Hint: Use shift() to remove front element, not pop() [OK]
Common Mistakes:
Using pop() instead of shift() for dequeue
Thinking push() adds at front
Confusing array methods for queue operations
5. You want to implement a queue using a fixed-size array of length 3 in TypeScript. After enqueueing 3 elements, you dequeue one element and then enqueue another. What problem will you face if you do not use a circular queue approach?
hard
A. You cannot enqueue the new element because the rear index reached the array end
B. The queue will automatically resize to fit new elements
C. Dequeue operation will remove the wrong element