Mindmap
Use this map as a study index. Each item points to a family of techniques; the linked algorithm chapters provide the full explanation and implementations.
Foundations
Data structures and algorithms
Arrays
- Searching in arrays
- Linear search
- Binary search
- Sorting in arrays
Linked lists
- Searching in linked lists
- Sorting linked lists
Stacks and queues
- Traversing stacks
- Traversing queues
Trees
- Traversals
- Bfs iterative traversal
- Dfs iterative traversal
- Binary search trees
Heaps
- Heapify
- Sift down
- Heap sort
Graphs
- Adjacency lists
- Adjacency matrix
- Dfs graph traversal
- Bfs graph traversal
- Topological sorting
Disjoint sets
- Union find
- Minimum spanning trees
- Prim’s algorithm
- Kruskal’s algorithm
- Maximum flow
- Shortest paths
- Bellman-Ford
- Dijkstra’s algorithm
- Floyd-Warshall
- Minimum spanning trees
- String matching
- Edit distances
- Hash table
- Hash function
Use basic implementations first; add the optimized or advanced variant after the invariant is clear.
The material is organized by dependency rather than difficulty.
Advanced structures
- Red black trees
- AVL trees
- Binomial heap
- Fibonacci heap
Techniques
- Bit manipulation
- Bit masking
- Ones complement
- Twos complement
- Two pointers
- Cycle detection
- Sliding windows
- Prefix sum
- Dynamic programming
- 0/1, fractional, unlimited Knapsack method
- Recursion, top-down, memoization
- Combinatorics, backtracking
- Iteration, bottom-up
- Greedy programming
- Morris traversal
- A* path finding
- Rabin karp pattern matching
- Knuth Morris pratt pattern matching
- Levenshtein distance
Mathematics
- Primes, sieve
- Catalan
- Permutation
- Binary to decimal, to hex conversions
- Logarithms to base
- Bit shifting
- Fastest way to add, subtract, multiply, divide, exponent, sqrt
- Computational complexity
Review checklist
- Templates
- Memory bytes sizes reference
- Network latency reference