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.

HardTechnical
29 practiced

Describe the edge classifications produced by DFS on a directed graph: tree, back, forward, and cross edges. Give formal definitions based on DFS discovery and finish times, and explain how each type relates to cycle detection and topological sorting.

HardTechnical
29 practiced

Given a directed acyclic graph (DAG) representing tasks with durations and precedence constraints, design an algorithm to compute the earliest completion time for each task and the overall project completion time. Explain how topological ordering and the critical path method are combined and how to modify the algorithm when resources are constrained (limited parallel workers).

MediumTechnical
25 practiced

For the following scenarios choose the most appropriate shortest-path algorithm and justify your choice: (a) city road routing with non-negative weights and frequent queries, (b) currency exchange graph where arbitrage implies negative cycles, (c) computing pairwise social network distances on unweighted graphs. Include complexity and practical concerns.

MediumTechnical
25 practiced

Implement an iterative DFS in Python to check whether there exists a path between two nodes in a directed graph. Use early exit to improve performance, handle missing nodes gracefully, and discuss stack size and worst-case complexity.

EasyTechnical
22 practiced

Implement a recursive DFS in Python on a graph represented as an adjacency list (dict int -> list[int]). Provide def dfs(graph, start): -> List[int] that returns nodes in discovery order for nodes reachable from start. Graph can contain cycles and self-loops; ensure you avoid infinite recursion and handle missing nodes gracefully.

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.