This module covers the fundamental building blocks of computer science: the difference between logical blueprints (Abstract Data Types) and their physical implementations (Data Structures).
Fundamentals
- Data Structures vs. Abstract Data Types: Understanding the conceptual difference between a specification and its concrete realization.
- Abstract Data Types (ADT): An overview of common ADT definitions and behaviors.
Linear Data Structures
- Linked List: A dynamic collection of nodes where each element points to the next, allowing for efficient insertions and deletions.
- Array Lists: Contiguous memory structures that provide fast random access and dynamic resizing.
- Circular Arrays: An optimization for arrays where the end wraps around to the beginning, often used in buffer management.
Common ADTs
- Stack: A “Last In, First Out” (LIFO) collection, similar to a stack of plates.
- Queues: A “First In, First Out” (FIFO) collection, similar to a line at a grocery store.
- Deques: A “Double-Ended Queue” that allows insertion and removal from both the front and the back.
- Priority Queue: A specialized queue where elements are served based on assigned priority rather than just arrival time.