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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 05QueueA queue is a collection that adds elements at the back and removes them from the front, preserving first-in-first-out order.
  6. 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.
  7. 07Set vs mapA set stores unique values and answers membership questions, while a map associates each unique key with a value.
  8. 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.
  9. 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.
  10. 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