| TOPIC: Queue |
|
|
| DEFINITION: |
| A queue is a linear data structure that follows the First-In-First-Out (FIFO) principle, where elements are added from one end and removed from the other, allowing for efficient management of items in a specific order. This helps solve problems that require processing items in a sequential manner, such as job scheduling or print queues. |
|
|
| TIME_COMPLEXITY: |
| The time complexity for enqueue and dequeue operations in a queue is O(1), as these operations involve adding or removing an element from the end or front of the queue, which takes constant time. |
|
|
| SPACE_COMPLEXITY: |
| The space complexity of a queue is O(n), where n is the number of elements in the queue, as each element occupies a certain amount of space in memory. |
|
|
| USE_WHEN: |
| Use a queue when you need to process items in a specific order, such as handling requests in the order they were received, or when you need to manage a pool of resources that are allocated and deallocated in a particular sequence. |
|
|
| AVOID_WHEN: |
| Avoid using a queue when you need to frequently access or remove elements from the middle of the sequence, as this can be inefficient; in such cases, consider using a different data structure like a linked list or an array. |
|
|
| EXAMPLE: |
| Initial queue: [1, 2, 3] |
| Enqueue 4: [1, 2, 3, 4] |
| Dequeue: [2, 3, 4] |
| Enqueue 5: [2, 3, 4, 5] |
| Dequeue: [3, 4, 5] |
| Result: [3, 4, 5] |
|
|
| REAL_WORLD_ANALOGY: |
| A queue is similar to a line of people waiting to buy tickets at a movie theater, where the first person in line is the first to be served, and each person waits their turn in the order they arrived. |
|
|
| SOURCE_NOTE: |