Data structures, algorithms and coding interviews
Data Structures & Algorithms
The planned outline of 21 modules. Lessons are written, run and reviewed before they are published.
Before this track
Planned outline
- Module 1
Foundations: problems, correctness and complexity
Coming soon - Module 2
Arrays, strings and in-place techniques
Coming soon - Module 3
Hashing: maps, sets and hash functions
Coming soon - Module 4
Recursion and backtracking
Coming soon - Module 5
Sorting and selection
Coming soon - Module 6
Binary search and searching
Coming soon - Module 7
Linked lists
Coming soon - Module 8
Stacks, queues and deques
Coming soon - Module 9
Trees and binary search trees
Coming soon - Module 10
Heaps and priority queues
Coming soon - Module 11
Graphs: modelling, traversal and connectivity
Coming soon - Module 12
Shortest paths, spanning trees and flows
Coming soon - Module 13
Greedy algorithms
Coming soon - Module 14
Dynamic programming
Coming soon - Module 15
Tries
Coming soon - Module 16
String algorithms
Coming soon - Module 17
Bit manipulation
Coming soon - Module 18
Maths for DSA
Coming soon - Module 19
Range queries and tree queries
Coming soon - Module 20
Randomisation and hard problems
Coming soon - Module 21
Algorithms in practice
Coming soon
Related tools
Official documentation
- docs.python.org/3/library/collections.html (docs.python.org)
- docs.python.org/3/library/heapq.html (docs.python.org)
- docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/package-summary.html (docs.oracle.com)
- en.cppreference.com/w/cpp/container (en.cppreference.com)
More in Data structures, algorithms and coding interviews
- Coding Interview Patterns (coming soon)
- Competitive Programming (coming soon)
- All DSA tracks
- How we make lessons