InterviewStack.io LogoInterviewStack.io

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.

EasyTechnical
23 practiced

Implement a multi-source BFS in Python. Input: n (number of nodes 0..n-1), edges list for an undirected unweighted graph, and a list of source nodes. Return an integer array dist of length n where dist[v] is the minimum number of edges from v to the nearest source, or -1 if unreachable. Your solution must run in O(V + E) time and use O(V) extra space.

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
30 practiced

Explain visited-state management in graph traversals. Describe the differences between marking nodes visited on discovery (enqueue) versus when they are processed (dequeue), or using color states (white/gray/black). Discuss implications for correctness, duplicate work, cycle detection, multi-source traversal, and parallel traversals in SRE systems.

HardTechnical
30 practiced

Design algorithms and practical system approaches to maintain connectivity information (connected components) under dynamic edge insertions and deletions for an undirected graph. Discuss amortized complexities, use of union-find for insertions, difficulties with deletions, and practical engineering tradeoffs such as batching deletes or full rebuilds. Suggest a strategy suitable for near-real-time dashboards.

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.