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, while 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 unique path between nodes, so they don't represent all possible routes.
Click to reveal answer
beginner
What real-life example shows why shortest path needs graphs, not trees?
In a city map, roads form a graph with many routes and loops. Finding the shortest path between two places requires considering all possible routes, which a tree structure cannot represent.
Click to reveal answer
intermediate
How does the presence of cycles in a graph affect shortest path calculations?
Cycles allow multiple routes between nodes. Algorithms must check all possible paths to find the shortest one, which is why graphs are needed instead of trees.
Click to reveal answer
beginner
Name a common algorithm used to find the shortest path in graphs.
Dijkstra's algorithm is a popular method to find the shortest path in weighted graphs.
Click to reveal answer
Which structure allows multiple paths between two nodes?
AStack
BTree
CLinked List
DGraph
✗ Incorrect
Graphs can have multiple paths and cycles, while trees have only one unique path between nodes.
Why is shortest path calculation not suitable for trees?
ATrees are not connected
BTrees have cycles
CTrees have only one path between nodes
DTrees have weighted edges only
✗ Incorrect
Trees have exactly one path between any two nodes, so shortest path problems that require multiple path options need graphs.
Which algorithm is commonly used for shortest path in graphs?
ADijkstra's algorithm
BBinary Search
CMerge Sort
DDepth First Search
✗ Incorrect
Dijkstra's algorithm efficiently finds shortest paths in weighted graphs.
What feature of graphs makes shortest path problems complex?
APresence of cycles
BNo edges
COnly one node
DLinear structure
✗ Incorrect
Cycles create multiple possible routes, requiring algorithms to explore many paths.
In a city road map, what data structure best models the roads for shortest path?
ATree
BGraph
CArray
DQueue
✗ Incorrect
City roads form a graph with many intersections and routes, suitable for shortest path calculations.
Explain why shortest path problems require graphs instead of trees.
Think about how many ways you can travel between two points in a city.
You got /4 concepts.
Describe a real-life example where shortest path is a graph problem, not a tree problem.
Imagine driving from home to work using different 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 graphs can have cycles and multiple paths between nodes, unlike trees
B. Because trees do not have nodes
C. Because shortest path algorithms only work on trees
D. Because trees always have negative edge weights
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 need to handle 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 A
Quick Check:
Graphs allow multiple paths = Shortest path is a graph 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 node existence in trees
2. Which of the following Java code snippets correctly declares a graph using adjacency lists?
easy
A. Map graph = new HashMap<>();
B. int graph = new int[5][5];
C. List graph = new ArrayList<>();
D. List<Integer> graph = new LinkedList<>();
Solution
Step 1: Identify adjacency list structure
An adjacency list for a graph is a list of lists, where each inner list holds neighbors of a node.
Step 2: Match code to adjacency list
List graph = new ArrayList<>(); declares a list of lists of integers, suitable for adjacency lists.
Final Answer:
List graph = new ArrayList<>(); -> Option C
Quick Check:
Adjacency list = List of Lists [OK]
Hint: Adjacency list = List of Lists in Java [OK]
Common Mistakes:
Using 2D array for adjacency list
Using Map with single Integer value
Using single list for graph
3. Consider the following Java code snippet for a graph with edges: 0->1 (weight 2), 0->2 (weight 4), 1->2 (weight 1). What is the shortest path distance from node 0 to node 2 using Dijkstra's algorithm?
medium
A. 4
B. 3
C. 2
D. 5
Solution
Step 1: List all paths from 0 to 2
Paths: 0->2 with cost 4, 0->1->2 with cost 2+1=3.
Step 2: Choose the minimum cost path
Between 4 and 3, the shortest path cost is 3 via 0->1->2.
Final Answer:
3 -> Option B
Quick Check:
Shortest path cost = 3 [OK]
Hint: Check all paths, pick minimum sum of weights [OK]
Common Mistakes:
Choosing direct edge without checking alternate paths
Adding weights incorrectly
Ignoring intermediate nodes
4. The following Java code attempts to find the shortest path in a graph but has a bug. What is the error?
int[] dist = new int[n];
Arrays.fill(dist, Integer.MAX_VALUE);
dist[source] = 0;
for (Edge e : edges) {
if (dist[e.from] + e.weight < dist[e.to]) {
dist[e.to] = dist[e.from] + e.weight;
}
}
medium
A. The code misses relaxing edges multiple times
B. The code does not initialize the distance array
C. The code does not handle negative weight edges
D. The code uses wrong comparison operator
Solution
Step 1: Understand the relaxation process
Relaxation must be repeated multiple times to propagate shortest distances correctly.
Step 2: Identify loop count issue
The code runs the relaxation only once over all edges, which is insufficient for graphs with multiple edges.
Final Answer:
The code misses relaxing edges multiple times -> Option A