Graphs and Graph Algorithms Questions

Graph representations (adjacency list and adjacency matrix) and the traversal algorithms applied to general, non-tree structures: BFS, DFS, topological sort (Kahn's algorithm and DFS-based), shortest paths (Dijkstra, Bellman-Ford, A*), minimum spanning trees, cycle detection, connected components, and union-find. Covers modeling a problem as a graph even when the underlying data is not obviously graph-shaped, such as state-space search, an implicit graph over strings or grid cells (for example Word Ladder), or a task-dependency graph, and implementing these traversals with a hash map or hash set as the storage vehicle (adjacency map, visited set, memoization table), not the subject being tested. The graded skill is traversal, ordering, connectivity, or shortest-path reasoning over nodes and edges. This topic does not own: traversal, reconstruction, or serialization of a single-rooted binary tree (preorder, inorder, postorder, or level-order implementation, rebuilding a tree from traversal arrays, lowest common ancestor, binary search tree validation), which belongs to binary trees and binary search trees even though a tree is technically a graph; hash table internals such as hash function design, collision resolution, and load factor and resizing, which belong to hashing and hash tables; and deriving or comparing algorithmic complexity across graph algorithms without implementing them, such as comparing the time complexity of BFS, DFS, Dijkstra, and A*, which belongs to time and space complexity analysis. One of the highest-signal areas in senior coding interviews.

EasyTechnical
25 practiced

Given an undirected graph represented as an adjacency list, write a function to compute the number of connected components and return a list of components (each component is a list of nodes). Your implementation should handle isolated nodes correctly and run in O(V+E) time. Explain your choice of BFS vs DFS and space complexity.

MediumTechnical
26 practiced

Explain cycle detection techniques for directed graphs, including DFS coloring (white/gray/black) and recursion-stack detection. Provide a concise Python pseudocode sketch for DFS coloring, discuss self-loops and parallel edges, and explain why union-find alone is insufficient for directed cycle detection.

MediumTechnical
39 practiced

Implement BFS on an implicit graph (state space) where each state's neighbors are generated by a function produce_neighbors(state). Write find_shortest_sequence(start, goal, produce_neighbors) in Python to return the shortest move sequence. Discuss pruning strategies, heuristics, and how to guarantee shortest path (when allowed to prune). Suggest bidirectional search when applicable.

EasyTechnical
23 practiced

Describe the adjacency list and adjacency matrix graph representations. For each, state the time and space complexity for common operations: iterate neighbors, check edge existence, add/remove an edge (for directed and undirected graphs). Given two example graphs (V=100000, E=200000) and (V=10000, E=80,000,000), recommend which representation you'd choose and why. Discuss tradeoffs for dynamic graphs and alternatives like CSR or edge-lists.

HardTechnical
23 practiced

Write Python code to find all articulation points (cut vertices) and bridges (cut edges) in an undirected network graph represented as adjacency list Dict[int, List[int]]. Use a DFS lowlink algorithm and explain how articulation points and bridges indicate single points of failure in a network topology.

Unlock Full Question Bank

Get access to all Graphs and Graph Algorithms interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.