Bird
Raised Fist0
Data Structures Theoryknowledge~5 mins

Minimum spanning tree (Prim's) in Data Structures Theory - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Minimum Spanning Tree (MST)?
A Minimum Spanning Tree is a subset of edges in a connected, weighted graph that connects all vertices together without any cycles and with the minimum possible total edge weight.
Click to reveal answer
beginner
What is the main idea behind Prim's algorithm?
Prim's algorithm builds the MST by starting from any vertex and repeatedly adding the smallest edge that connects a vertex in the tree to a vertex outside the tree until all vertices are included.
Click to reveal answer
beginner
How does Prim's algorithm choose the next edge to add?
It selects the edge with the smallest weight that connects a vertex already in the MST to a vertex not yet included.
Click to reveal answer
intermediate
Why does Prim's algorithm always produce a minimum spanning tree?
Because it always picks the smallest possible edge that expands the tree without creating cycles, ensuring the total weight is minimized.
Click to reveal answer
intermediate
What data structure is commonly used to efficiently implement Prim's algorithm?
A priority queue (or min-heap) is used to quickly select the edge with the smallest weight at each step.
Click to reveal answer
What does Prim's algorithm start with?
AAn empty graph
BAll edges
CThe heaviest edge
DAny single vertex
Which of the following best describes the edge selection in Prim's algorithm?
ASmallest edge connecting the MST to a new vertex
BRandom edge from the graph
CLargest edge in the graph
DEdges that form cycles
What type of graph is required for Prim's algorithm to work correctly?
ADisconnected graph
BDirected graph
CConnected weighted graph
DGraph with no edges
What is the main goal of Prim's algorithm?
AFind the shortest path between two vertices
BFind a minimum spanning tree
CFind a cycle in the graph
DSort all edges by weight
Which data structure helps Prim's algorithm efficiently pick the next edge?
APriority queue (min-heap)
BQueue
CStack
DLinked list
Explain how Prim's algorithm builds a minimum spanning tree step-by-step.
Think about growing the tree one edge at a time.
You got /4 concepts.
    Why is a priority queue useful in Prim's algorithm?
    Consider how to find the minimum edge fast.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main goal of Prim's algorithm in graph theory?
      easy
      A. To find the minimum spanning tree connecting all vertices with the least total edge weight
      B. To find the shortest path between two vertices
      C. To detect cycles in a graph
      D. To sort vertices based on their degree

      Solution

      1. Step 1: Understand Prim's algorithm purpose

        Prim's algorithm builds a tree that connects all vertices with the minimum sum of edge weights.
      2. Step 2: Compare with other graph problems

        Unlike shortest path or cycle detection, Prim's focuses on spanning all vertices with minimal total edge cost.
      3. Final Answer:

        To find the minimum spanning tree connecting all vertices with the least total edge weight -> Option A
      4. Quick Check:

        Prim's algorithm = Minimum spanning tree [OK]
      Hint: Prim's always finds the cheapest tree connecting all points [OK]
      Common Mistakes:
      • Confusing minimum spanning tree with shortest path
      • Thinking it detects cycles
      • Assuming it sorts vertices
      2. Which data structure is commonly used in Prim's algorithm to select the next edge with the smallest weight?
      easy
      A. Priority queue (min-heap)
      B. Stack
      C. Queue
      D. Hash table

      Solution

      1. Step 1: Identify how Prim's picks edges

        Prim's algorithm always picks the edge with the smallest weight connecting the tree to a new vertex.
      2. Step 2: Choose the right data structure

        A priority queue (min-heap) efficiently retrieves the smallest edge weight at each step.
      3. Final Answer:

        Priority queue (min-heap) -> Option A
      4. Quick Check:

        Smallest edge selection = Priority queue [OK]
      Hint: Use a min-heap to always pick the cheapest edge next [OK]
      Common Mistakes:
      • Using stack or queue which don't sort by weight
      • Confusing hash table with priority queue
      • Ignoring edge weights in selection
      3. Consider the following weighted graph edges:
      A-B: 2, A-C: 3, B-C: 1, B-D: 4, C-D: 5
      Using Prim's algorithm starting from vertex A, what is the total weight of the minimum spanning tree?
      medium
      A. 5
      B. 8
      C. 7
      D. 6

      Solution

      1. Step 1: Start from vertex A and pick smallest edge

        Edges from A: A-B(2), A-C(3). Pick A-B with weight 2.
      2. Step 2: Add next smallest edge connecting new vertices

        From B and A, edges are B-C(1), B-D(4), A-C(3). Pick B-C with weight 1.
      3. Step 3: Add next smallest edge to connect remaining vertex D

        Edges from B, C, A to D: B-D(4), C-D(5). Pick B-D with weight 4.
      4. Step 4: Calculate total weight

        Total = 2 + 1 + 4 = 7.
      5. Final Answer:

        7 -> Option C
      6. Quick Check:

        Sum edges 2+1+4 = 7 [OK]
      Hint: Add edges with smallest weight connecting new vertices [OK]
      Common Mistakes:
      • Choosing edges without checking if vertex is already included
      • Adding edges that form cycles
      • Forgetting to sum all chosen edges
      4. In the following code snippet for Prim's algorithm, what is the error?
      graph = { 'A': {'B': 2, 'C': 3}, 'B': {'A': 2, 'C': 1, 'D': 4}, 'C': {'A': 3, 'B': 1, 'D': 5}, 'D': {'B': 4, 'C': 5} }
      visited = set()
      keys = {v: float('inf') for v in graph}
      keys['A'] = 0
      while len(visited) < len(graph):
          u = min((k for k in keys if k not in visited), key=lambda x: keys[x])
          visited.add(u)
          for v, w in graph[u].items():
              if v not in visited and w < keys[v]:
                  keys[v] = w
      medium
      A. The keys dictionary is not updated correctly
      B. The algorithm does not track parent nodes to build the MST
      C. The min function call is incorrect
      D. The visited set is never updated

      Solution

      1. Step 1: Analyze the code's MST construction

        The code updates keys but does not store which vertex connects to which, so MST edges are unknown.
      2. Step 2: Identify missing MST parent tracking

        Prim's algorithm requires tracking parent nodes to reconstruct the MST edges, which is missing here.
      3. Final Answer:

        The algorithm does not track parent nodes to build the MST -> Option B
      4. Quick Check:

        Missing parent tracking = MST incomplete [OK]
      Hint: Track parents to know MST edges, not just weights [OK]
      Common Mistakes:
      • Assuming keys alone build MST
      • Ignoring parent node tracking
      • Thinking visited set is not updated
      5. You have a graph with vertices representing cities and edges representing roads with costs. If some roads have zero cost, how does Prim's algorithm handle these edges when building the minimum spanning tree?
      hard
      A. It always includes zero-cost edges first, possibly creating multiple disconnected trees
      B. It causes an error because zero-cost edges are invalid
      C. It ignores zero-cost edges because they don't reduce total cost
      D. It treats zero-cost edges as the cheapest and includes them first to connect vertices

      Solution

      1. Step 1: Understand edge weight role in Prim's

        Prim's algorithm always picks the edge with the smallest weight connecting new vertices.
      2. Step 2: Consider zero-cost edges

        Zero-cost edges are the cheapest possible, so they will be chosen first to connect vertices without increasing total cost.
      3. Step 3: Confirm no errors or ignoring

        Zero-cost edges are valid and included; they do not cause errors or get ignored.
      4. Final Answer:

        It treats zero-cost edges as the cheapest and includes them first to connect vertices -> Option D
      5. Quick Check:

        Zero-cost edges = chosen first [OK]
      Hint: Zero-cost edges are cheapest, so Prim picks them first [OK]
      Common Mistakes:
      • Thinking zero-cost edges cause errors
      • Assuming zero-cost edges are ignored
      • Believing zero-cost edges create disconnected trees
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard