What is the main difference between a tree and a graph?
A tree is a special type of graph with no cycles and exactly one path between any two nodes. A graph can have cycles and multiple paths between nodes.
Click to reveal answer
beginner
Why can't shortest path problems be solved using trees alone?
Because shortest path problems often involve multiple paths and cycles, which trees do not have. Trees have only one path between nodes, so they don't represent all possible routes.
Click to reveal answer
intermediate
In a graph, why is it important to consider cycles when finding the shortest path?
Cycles allow multiple routes between nodes. Considering cycles helps find the shortest route by comparing different paths, which is not possible in trees since they have no cycles.
Click to reveal answer
intermediate
How does the presence of multiple paths in a graph affect shortest path algorithms?
Multiple paths mean algorithms must explore and compare different routes to find the shortest one, which requires more complex logic than in trees where only one path exists.
Click to reveal answer
beginner
Give an example of a real-life situation where shortest path is a graph problem, not a tree problem.
Finding the quickest route in a city with many roads and intersections is a graph problem because there are multiple paths and loops, unlike a tree structure.
Click to reveal answer
Which of the following is true about trees compared to graphs?
AGraphs always have no cycles
BTrees have no cycles and exactly one path between nodes
CTrees can have multiple cycles
DGraphs have only one path between nodes
✗ Incorrect
Trees are acyclic and have exactly one path between any two nodes, unlike graphs which can have cycles and multiple paths.
Why is shortest path calculation more complex in graphs than in trees?
ABecause graphs can have multiple paths and cycles
BBecause trees have cycles
CBecause trees have multiple paths
DBecause graphs have no edges
✗ Incorrect
Graphs can have many paths and cycles, so algorithms must consider all possible routes to find the shortest path.
Which data structure is best suited for representing multiple routes between points?
AGraph
BTree
CArray
DStack
✗ Incorrect
Graphs can represent multiple routes and cycles, making them suitable for such problems.
In shortest path problems, what does a cycle in a graph represent?
ANo connection
BA dead end
CA single path
DA loop that may offer alternative routes
✗ Incorrect
Cycles represent loops that can provide alternative paths between nodes.
Which real-world example best illustrates a shortest path graph problem?
AListing items in a shopping list
BOrganizing a family tree
CFinding the fastest route in a city with many roads
DStacking books on a shelf
✗ Incorrect
City roads form a graph with multiple paths and cycles, making shortest path calculation a graph problem.
Explain why shortest path problems require graphs instead of trees.
Think about how many ways you can go from one point to another.
You got /4 concepts.
Describe a real-life scenario where shortest path is a graph problem and why a tree structure is insufficient.
Imagine navigating through a city with many roads.
You got /4 concepts.
Practice
(1/5)
1. Why is finding the shortest path usually considered a graph problem rather than a tree problem?
easy
A. Because trees do not have nodes
B. Because trees always have equal path lengths
C. Because shortest path algorithms only work on trees
D. Because graphs can have cycles and multiple paths between nodes, unlike trees
Solution
Step 1: Understand the structure of trees and graphs
Trees are a special type of graph with no cycles and exactly one path between any two nodes.
Step 2: Analyze shortest path requirements
Shortest path problems require handling multiple paths and cycles, which only general graphs can have.
Final Answer:
Because graphs can have cycles and multiple paths between nodes, unlike trees -> Option D
Quick Check:
Graphs allow multiple paths = shortest path problem [OK]
Hint: Shortest path needs multiple paths; trees have only one [OK]
Common Mistakes:
Thinking trees have cycles
Assuming shortest path only applies to trees
Confusing nodes with edges
2. Which of the following is the correct way to represent a graph in JavaScript for shortest path algorithms?
Using a shortest path algorithm from node 'A' to 'D', what is the length of the shortest path?
medium
A. 2
B. 3
C. 1
D. 4
Solution
Step 1: List all paths from 'A' to 'D'
Possible paths: A->B->D and A->C->D, both have 2 edges.
Step 2: Determine shortest path length
Both paths have length 2, so shortest path length is 2.
Final Answer:
2 -> Option A
Quick Check:
Shortest path edges count = 2 [OK]
Hint: Count edges in shortest route from start to end [OK]
Common Mistakes:
Counting nodes instead of edges
Ignoring multiple paths
Assuming direct edge exists
4. The following code attempts to find the shortest path length in a graph but has a bug:
function shortestPath(graph, start, end) {
let queue = [start];
let visited = new Set();
let distance = {};
distance[start] = 0;
while (queue.length > 0) {
let node = queue.shift();
if (node === end) return distance[node];
for (let neighbor of graph[node]) {
if (!visited.has(neighbor)) {
visited.add(neighbor);
distance[neighbor] = distance[node] + 1;
queue.push(neighbor);
}
}
}
return -1;
}
What is the main bug in this code?
medium
A. The distance object is not updated
B. The queue is not initialized correctly
C. The visited set is never updated for the start node
D. The function does not return anything
Solution
Step 1: Check visited set usage
The start node is added to the queue but not marked visited initially, so it may be revisited.
Step 2: Understand BFS behavior
Without marking start visited, neighbors may be processed multiple times, causing incorrect distances or infinite loops.
Final Answer:
The visited set is never updated for the start node -> Option C
Quick Check:
Start node must be visited first [OK]
Hint: Always mark start node visited before BFS loop [OK]
Common Mistakes:
Forgetting to mark start visited
Assuming queue initialization fixes visited
Ignoring visited set usage
5. You have a graph with weighted edges, and some edges form cycles. Why can't you use a simple tree shortest path algorithm here, and which algorithm is suitable instead?
hard
A. Because trees have weighted edges; use Prim's algorithm for shortest path
B. Because trees have no cycles; use Dijkstra's algorithm for weighted graphs with cycles
C. Because trees allow multiple paths; use DFS for weighted graphs
D. Because trees have cycles; use BFS for weighted graphs
Solution
Step 1: Understand tree vs graph with cycles and weights
Trees have no cycles and unweighted edges, so simple shortest path methods for trees don't apply to weighted graphs with cycles.
Step 2: Identify suitable algorithm for weighted graphs with cycles
Dijkstra's algorithm handles weighted edges and cycles correctly to find shortest paths.
Final Answer:
Because trees have no cycles; use Dijkstra's algorithm for weighted graphs with cycles -> Option B