Definition
Ways to store and organize data in a computer so it can be used efficiently.
1. Fundamentals and Linear Structures
This section covers the core concepts of memory organization and basic sequential data arrangements.
- Data Structures vs. ADTs: The distinction between logical models and physical implementations.
- Abstract Data Types (ADT): Formal definitions of behavioral models.
- Array Lists: Sequential storage using contiguous memory (Static and Dynamic).
- Linked List: Elements stored in nodes with pointers to sequential neighbors.
- Circular Arrays: Memory optimization for fixed-size buffers.
2. Common ADTs (Behavioral Models)
Logical interfaces that define how data is accessed and manipulated, regardless of the underlying storage.
- Stack: LIFO (Last-In, First-Out) access pattern.
- Queues: FIFO (First-In, First-Out) access pattern.
- Deques: Double-ended queue allowing access from both ends.
- Priority Queue: Elements processed based on urgency or value.
- Set: Collection of unique elements.
- Hash Maps (Maps): Key-value pair associations.
- Pair: A simple container for two related data elements.
3. Tree Structures
Hierarchical data organizations optimized for searching, sorting, and priority-based access.
- Binary Tree: The foundational hierarchical structure where each node has at most two children.
- Binary Search Tree (BST): Optimized for search by maintaining sorted order.
- Heap: A complete tree used for efficient priority-based retrieval.
- FP-Tree: Advanced structure used for mining frequent patterns in datasets.
4. Summary Index
By Storage Type
- Linear: Arrays, Linked Lists, Circular Buffers.
- Non-Linear: Trees, BSTs, Heaps.
By Access Pattern (ADTs)
- Sequential: Stacks, Queues, Deques.
- Associative: Hash Maps (Maps), Set.
- Ranked: Priority Queues.