DSA & Competitive Programming

DSA & Competitive Programming

A map of all data structures, algorithms, and competitive programming notes.

Fundamentals

Data Structures

Linear

Non-Linear

  • Graph Theory — Vertices, edges, adjacency lists/matrices, directed/undirected, weighted/unweighted, DAGs
  • trees — Hierarchical structures, binary trees, traversals

Algorithms

Sorting

  • Sorting Basics — Bubble, selection, insertion sort; stable vs unstable; in-place vs out-of-place

Searching

  • Binary Search — Log-time search on sorted/monotonic spaces; iterative & recursive implementations

Recursion

  • Recursion — Divide and conquer, call stack mechanics, base case & recursive case

Patterns

  • Two Pointers — Parallel, colliding, seeker/placeholder variants for array problems

Problem-Solving Patterns

PatternWhen to UseRelated Notes
Two PointersSorted arrays, pair findingTwo Pointers
Binary SearchSorted/searchable spaceBinary Search
RecursionTree traversal, divide & conquerRecursion
Monotonic StackNext greater/smaller elementStacks, Queues and Monotonicity
Graph TraversalBFS/DFS on networksGraph Theory