List of graph-related topics in competitive programming, organized from basic to advanced:
- Graph Representation
- Adjacency Matrix
- Adjacency List
- Graph Traversal
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Shortest Path Algorithms
- Dijkstra's Algorithm
- Bellman-Ford Algorithm
- Minimum Spanning Tree (MST)
- Kruskal's Algorithm
- Prim's Algorithm
- Union-Find / Disjoint Set Union (DSU)
- Path Compression
- Union by Rank/Size
- Topological Sorting
- Strongly Connected Components (SCC)
- Kosaraju's Algorithm
- Tarjan's Algorithm
- Cycle Detection
- In Directed Graphs
- In Undirected Graphs
- Flow Algorithms
- Ford-Fulkerson Method
- Edmonds-Karp Algorithm
- Dinic's Algorithm
- Matching Algorithms
- Bipartite Matching
- Hopcroft-Karp Algorithm
- Eulerian Path and Circuit
- Hierholzer's Algorithm
- Hamiltonian Path and Circuit
- Backtracking
- Dynamic Programming Approach
- Network Flow
- Min-Cost Max-Flow
- Graph Coloring
- Greedy Coloring
- Backtracking
- Bipartite Check
- Planarity Testing
- LCA (Lowest Common Ancestor)
- Binary Lifting
- Euler Tour Technique
- Tree Algorithms
- Tree Diameter
- Centroid Decomposition
- Heavy-Light Decomposition
- 2-SAT Problem
- Articulation Points and Bridges
- Graph Isomorphism
- Suffix Tree and Suffix Array
- Persistent Data Structures in Graphs
- Dynamic Graph Algorithms
- Dynamic Connectivity
- Dynamic MST
- Expander Graphs
- Graph Compression Techniques
- Heavy Path Decomposition
- Tree Decomposition