Queue Data Structure Notes
Chapter 1: Introduction to Queue Data Structure
Definition: A queue is a fundamental data structure used in programming, analogous to a ticket line at a cinema.
Principle: Follows the FIFO (First In, First Out) rule.
Example: The first person to enter the queue is the first to receive a ticket (served).
Basic Queue Operations:
Enqueue: Adds an item to the end of the queue.
Dequeue: Removes the item from the front of the queue.
Front/Head: Position of the first item in the queue.
Rear/Tail: Position of the last item added to the queue.
Visual Representation:
Enqueue operation increases the number of items in the queue.
Dequeue operation reduces the number of items, following the FIFO order.
Chapter 2: Elements of Queue
Peek: Returns the value at the front of the queue without removing it.
Size: Returns the number of items currently in the queue.
Pointers:
Front and Rear pointers help track the first and last elements.
Initially both set to -1 to indicate an empty queue.
Enqueuing:
If queue is empty, set front to 0 and increment the rear for each added item.
Dequeuing:
Check if queue is empty before removing an item.
After the last element is dequeued, reset both pointers to -1.
Chapter 3: Managing Empty Queue States
Understanding State:
Front and Rear pointers help to manage and determine the state of the queue, whether items exist or it’s empty.
Limitations of Basic Queue:
Once deletions create empty spaces, it cannot utilize those spaces until all items are removed.
Circular Queue Introduction:
A circular queue allows better memory utilization by linking the rear back to the front, preventing wastage of space.
Chapter 4: Simple Circular Queue
Applications:
CPU scheduling, disk scheduling, IO buffers, and real-time systems.
Handle calls in systems like call centers.
Circular Queue Advantages:
More effective use of memory.
Can reuse space that becomes available after elements are dequeued.
Operations in Circular Queue:
Operate similar to a normal queue but allows the pointer to wrap around to the start when reaching the end of the storage.
Chapter 5: Front and Rear Management
Data Handling in Circular Queue:
Maintain pointers for front (head) and rear (tail) throughout enqueue and dequeue operations.
Example of Usage:
Continuous monitoring and management of pointer locations and sizes during operations (insertions and deletions).
Chapter 6: Conclusion
Queue Overflow and Underflow:
Overflow occurs when trying to add an item to a full queue (an error).
Underflow occurs when trying to remove an item from an empty queue (another error).
Memory Techniques:
Circular queues provide a solution to common limitations present in simple queues by optimizing space utilization.
Resetting both pointers once the queue is empty to indicate no items are left in the structure.
End of Presentation Summary:
Reviewed key concepts in queue data structures, their operations, and limitations, alongside circular queue benefits and applications.