Skip to content
dsa/roadmap
← Roadmap
Phase 1

Foundations

What a data structure is, the C++ you need (pointers, references, recursion), and how to measure an algorithm with Big-O.

  1. 1.1What Is a Data Structure?A data structure is a way of organising data in memory so the operations you need are fast. Learn how they are classified and what makes a good one.easy
  2. 1.2ADTs & AbstractionAn Abstract Data Type says WHAT operations exist; a data structure says HOW they are built. Separating the two is the key idea behind every structure on this roadmap.easy
  3. 1.3Pointers, new/delete & the HeapA pointer holds an address. new asks the heap for memory that lives until you delete it. Master this and linked lists become easy.medium
  4. 1.4Recursion PrimerA function that calls itself on a smaller problem until it reaches a base case. You need this for trees (Phase 4) and merge/quick sort (Phase 3).medium
  5. 1.5Algorithms & Their PropertiesAn algorithm is a finite, unambiguous sequence of steps that solves a problem. Learn the 11 properties every correct algorithm must have.easy
  6. 1.6Measuring EfficiencyEmpirical vs theoretical analysis, qualitative vs quantitative, the three classic avoidable inefficiencies, and the time–space trade-off.easy
  7. 1.7Counting Time UnitsTurn code into a formula T(n) using a simple set of counting rules. Loops become sums, and nested loops multiply.medium
  8. 1.8Best, Average & Worst CaseThe same algorithm can be fast or slow depending on the input. We analyse the best, average and worst case, and usually report the worst.easy
  9. 1.9Asymptotic Notation & Big-O ProofsO, Ω, Θ, o and ω describe how fast T(n) grows for large n. Learn the definitions, the order of growth, and how to prove f(n) = O(g(n)) by finding c and k.medium

Keyboard shortcuts

⌘K /
Search topics, glossary, cheat sheets
space
Play / pause the visualizer
← →
Step back / forward
r
Reset the visualizer
?
Show this help