Directed vs undirected graphs in Data Structures Theory - Performance Comparison
Start learning this pattern below
Jump into concepts and practice - no test required
When working with graphs, it is important to understand how the direction of edges affects the time it takes to process them.
We want to see how the number of edges and their direction influence the work done when exploring a graph.
Analyze the time complexity of traversing a graph using Depth-First Search (DFS).
function DFS(node, visited, graph) {
visited.add(node);
for (const neighbor of graph[node]) {
if (!visited.has(neighbor)) {
DFS(neighbor, visited, graph);
}
}
}
// graph can be directed or undirected
// visited is a set to track visited nodes
// graph[node] gives neighbors of node
This code visits all nodes reachable from a starting node by following edges.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Visiting each node and exploring its neighbors.
- How many times: Each node is visited once; each edge is checked once in directed graphs, twice in undirected graphs.
As the number of nodes and edges grows, the work to visit all nodes and edges grows roughly in proportion to their total count.
| Input Size (n nodes, m edges) | Approx. Operations |
|---|---|
| 10 nodes, 15 edges | ~25 (10 nodes + 15 edges) |
| 100 nodes, 200 edges | ~300 (100 + 200) |
| 1000 nodes, 5000 edges | ~6000 (1000 + 5000) |
Pattern observation: The total work grows roughly with the sum of nodes and edges.
Time Complexity: O(n + m)
This means the time to traverse the graph grows linearly with the number of nodes plus the number of edges.
[X] Wrong: "Directed and undirected graphs always take the same time to traverse because they have the same number of edges."
[OK] Correct: In undirected graphs, each edge connects two nodes and is counted twice during traversal (once from each node), so the traversal checks edges differently than in directed graphs.
Understanding how graph direction affects traversal time helps you explain your approach clearly and choose the right algorithms in real problems.
"What if the graph is represented using an adjacency matrix instead of adjacency lists? How would the time complexity change?"
Practice
Solution
Step 1: Understand edge direction in graphs
Directed graphs have edges that point from one vertex to another, showing direction.Step 2: Compare with undirected graphs
Undirected graphs have edges without direction, connecting vertices both ways equally.Final Answer:
Edges have a direction from one vertex to another -> Option AQuick Check:
Directed graph = edges with direction [OK]
- Confusing directed with weighted edges
- Thinking undirected edges have direction
- Assuming all graphs have directions
A and B?Solution
Step 1: Understand undirected edge representation
Undirected edges connect two vertices both ways, so both (A, B) and (B, A) are included.Step 2: Compare with directed edge representation
Directed edges include only one direction, like (A → B), not both.Final Answer:
(A, B) and (B, A) both included -> Option DQuick Check:
Undirected edge = both directions stored [OK]
- Listing only one direction for undirected edges
- Confusing directed arrow notation with undirected
- Assuming undirected edges are stored once only
[(1, 2), (2, 3), (3, 1)], what is the result of checking if there is a path from vertex 3 to vertex 2?Solution
Step 1: Analyze edges for path from 3 to 2
Edges are (1 → 2), (2 → 3), (3 → 1). From 3, you can go to 1 only.Step 2: Check if path leads to 2
From 3 to 1, then from 1 to 2 is possible, so path exists: 3 → 1 → 2.Final Answer:
Yes, there is a path -> Option BQuick Check:
Path 3->1->2 exists [OK]
- Ignoring indirect paths
- Assuming no path if direct edge missing
- Confusing directed with undirected paths
edges = [(1, 2), (2, 3), (3, 1)] used as is for an undirected graph.Solution
Step 1: Understand undirected edge storage
Undirected edges require both (u, v) and (v, u) to represent two-way connection.Step 2: Check given edge list
Edges are only listed one way, missing reverse edges like (2, 1), (3, 2), (1, 3).Final Answer:
Edges should be duplicated in reverse order -> Option AQuick Check:
Undirected edges need both directions [OK]
- Assuming one direction is enough
- Thinking tuples need 3 elements
- Believing given list is complete
Solution
Step 1: Understand the nature of friendships
Mutual friendships mean if A is friend with B, then B is friend with A.Step 2: Choose graph type matching mutual connections
Undirected graphs represent mutual connections naturally, with edges having no direction.Final Answer:
Undirected graph, because friendships go both ways -> Option CQuick Check:
Mutual relations = undirected graph [OK]
- Choosing directed graph for mutual relations
- Confusing following with friendship
- Ignoring edge direction meaning
