Track 09 of 12 · Choose the right shape
Data Structures & Complexity
Learn how data layout determines the cost of access, insertion, deletion, and traversal. Build a practical vocabulary for comparing structures by workload rather than by habit.
Ten concepts, in learning order
Each lesson assumes the ideas above it and prepares you for the ones below.
- 01Algorithmic complexity: O, Ω, and ΘAlgorithmic complexity describes resource growth with input size: O gives an asymptotic upper bound, Ω a lower bound, and Θ a tight bound when both match.
- 02Array and dynamic arrayAn array stores elements in contiguous indexed slots; a dynamic array adds a logical length and capacity, reallocating to a larger backing array when capacity is exhausted.
- 03Linked listA linked list stores elements in separate nodes connected by references, with each node pointing to the next node and, in a doubly linked list, also to the previous one.
- 04StackA stack is a collection whose push and pop operations add and remove at the same end, so the most recently added element is removed first.
- 05QueueA queue is a collection that adds elements at the back and removes them from the front, preserving first-in-first-out order.
- 06Hash tableA hash table uses a hash of each key to select a bucket or probe sequence, providing expected constant-time lookup, insertion, and deletion when keys are well distributed and load is controlled.
- 07Set vs mapA set stores unique values and answers membership questions, while a map associates each unique key with a value.
- 08Tree and binary search treeA tree is a hierarchy of nodes connected without cycles; a binary search tree gives each node at most two children and orders keys before or after it on consistent sides, with duplicate handling defined by the implementation.
- 09Heap and priority queueA priority queue removes the highest-priority item rather than the oldest; a binary heap commonly implements it as a complete tree where every parent outranks its children.
- 10Graph representationA graph represents vertices and edges using a structure such as an adjacency list, adjacency matrix, or edge list, each exposing different storage and query costs.
Continue the curriculum
Next: Algorithmic Problem Solving
Practice the recurring search, traversal, sorting, and state-reuse patterns behind many programming problems. Focus on the invariant that makes each technique correct.
Open track 10