Bird
Raised Fist0
Data Structures Theoryknowledge~20 mins

Minimum spanning tree (Kruskal's) in Data Structures Theory - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
MST Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding the core idea of Kruskal's algorithm

What is the main principle behind Kruskal's algorithm when building a minimum spanning tree?

AStart from a single node and add the cheapest edge connecting to a new node repeatedly
BAdd edges in order of increasing weight, skipping those that form a cycle
CAdd all edges first, then remove the heaviest edges until no cycles remain
DRandomly add edges until all nodes are connected
Attempts:
2 left
💡 Hint

Think about how the algorithm avoids cycles while choosing edges.

🔍 Analysis
intermediate
2:00remaining
Detecting cycles in Kruskal's algorithm

Which data structure is commonly used in Kruskal's algorithm to efficiently detect cycles when adding edges?

APriority Queue
BQueue
CStack
DDisjoint Set (Union-Find)
Attempts:
2 left
💡 Hint

It helps keep track of which nodes belong to the same connected component.

🚀 Application
advanced
3:00remaining
Output of Kruskal's algorithm on a weighted graph

Given the following edges with weights: (A-B:1), (B-C:4), (A-C:3), (C-D:2), (B-D:5), what edges will Kruskal's algorithm select for the minimum spanning tree?

A(A-B), (C-D), (B-D)
B(A-B), (C-D), (B-C)
C(A-B), (C-D), (A-C)
D(A-C), (C-D), (B-D)
Attempts:
2 left
💡 Hint

Sort edges by weight and add them if they don't form a cycle.

❓ Reasoning
advanced
2:00remaining
Why Kruskal's algorithm sorts edges first

Why does Kruskal's algorithm sort all edges by weight before processing them?

ATo ensure the algorithm always picks the smallest available edge to build the MST
BTo group edges by their connected nodes
CTo speed up cycle detection
DTo remove duplicate edges before processing
Attempts:
2 left
💡 Hint

Think about how the algorithm guarantees minimal total weight.

❓ Comparison
expert
3:00remaining
Comparing Kruskal's and Prim's algorithms

Which of the following statements correctly compares Kruskal's and Prim's algorithms for minimum spanning trees?

AKruskal's algorithm works better on sparse graphs, while Prim's is more efficient on dense graphs
BPrim's algorithm requires sorting all edges first, Kruskal's does not
CKruskal's algorithm starts from a single node, Prim's adds edges globally
DBoth algorithms always produce different minimum spanning trees
Attempts:
2 left
💡 Hint

Consider how each algorithm processes edges and nodes.

Practice

(1/5)
1. What is the main goal of Kruskal's algorithm in graph theory?
easy
A. To detect if a graph contains cycles
B. To find the shortest path between two vertices
C. To find the minimum spanning tree connecting all vertices without cycles
D. To sort vertices by their degree

Solution

  1. Step 1: Understand the purpose of Kruskal's algorithm

    Kruskal's algorithm is designed to connect all points in a graph with the smallest total edge weight without forming any loops.
  2. Step 2: Compare with other graph problems

    Unlike shortest path or cycle detection alone, Kruskal's focuses on building a minimum spanning tree, which is a tree connecting all vertices with minimal cost.
  3. Final Answer:

    To find the minimum spanning tree connecting all vertices without cycles -> Option C
  4. Quick Check:

    Kruskal's goal = minimum spanning tree [OK]
Hint: Kruskal's connects all points cheaply without loops [OK]
Common Mistakes:
  • Confusing minimum spanning tree with shortest path
  • Thinking it detects cycles only
  • Assuming it sorts vertices instead of edges
2. Which of the following is the correct first step in Kruskal's algorithm?
easy
A. Pick any vertex and start a depth-first search
B. Sort all edges in increasing order of their weights
C. Remove all vertices with degree 1
D. Sort vertices by their labels alphabetically

Solution

  1. Step 1: Identify the initial step of Kruskal's algorithm

    Kruskal's algorithm begins by sorting all edges by their weight from smallest to largest to ensure the cheapest edges are considered first.
  2. Step 2: Eliminate incorrect options

    Depth-first search and vertex removal are not part of Kruskal's initial steps, and sorting vertices alphabetically is irrelevant.
  3. Final Answer:

    Sort all edges in increasing order of their weights -> Option B
  4. Quick Check:

    First step = sort edges by weight [OK]
Hint: Always start by sorting edges by weight ascending [OK]
Common Mistakes:
  • Sorting vertices instead of edges
  • Starting with a search instead of sorting
  • Removing vertices prematurely
3. Given the edges with weights: (A-B: 1), (B-C: 4), (A-C: 3), (C-D: 2), what edges will Kruskal's algorithm select for the minimum spanning tree?
medium
A. (A-C), (B-C), (C-D)
B. (A-B), (C-D), (B-C)
C. (A-B), (C-D), (A-C), (B-C)
D. (A-B), (C-D), (A-C)

Solution

  1. Step 1: Sort edges by weight

    Edges sorted: (A-B:1), (C-D:2), (A-C:3), (B-C:4).
  2. Step 2: Add edges without creating cycles

    Add (A-B), then (C-D). Adding (A-C) connects A and C without cycle. Adding (B-C) would create a cycle, so skip it.
  3. Final Answer:

    (A-B), (C-D), (A-C) -> Option D
  4. Quick Check:

    Edges chosen = smallest weights without cycles [OK]
Hint: Pick edges from smallest weight, skip if cycle forms [OK]
Common Mistakes:
  • Including all edges regardless of cycles
  • Choosing heavier edges before lighter ones
  • Not checking for cycles before adding edges
4. In Kruskal's algorithm, what is the common error if the algorithm adds an edge that creates a cycle?
medium
A. The disjoint set structure is not used or updated correctly
B. Edges are not sorted by weight
C. Vertices are not labeled properly
D. The graph is directed instead of undirected

Solution

  1. Step 1: Understand cycle prevention in Kruskal's

    Kruskal's algorithm uses a disjoint set (union-find) data structure to track connected components and avoid cycles.
  2. Step 2: Identify the cause of cycle creation

    If an edge creates a cycle, it means the disjoint set was not used or updated properly to detect that the two vertices are already connected.
  3. Final Answer:

    The disjoint set structure is not used or updated correctly -> Option A
  4. Quick Check:

    Cycle error = faulty disjoint set use [OK]
Hint: Use disjoint sets to detect cycles before adding edges [OK]
Common Mistakes:
  • Ignoring disjoint set updates
  • Assuming sorting fixes cycles
  • Confusing graph direction with cycle detection
5. You have a graph with edges: (X-Y: 2), (Y-Z: 2), (X-Z: 3), (Z-W: 1), (W-X: 4). Using Kruskal's algorithm, which set of edges forms the minimum spanning tree?
hard
A. (Z-W), (X-Y), (Y-Z)
B. (X-Y), (Y-Z), (X-Z)
C. (Z-W), (X-Z), (W-X)
D. (Z-W), (X-Y), (Y-Z), (W-X)

Solution

  1. Step 1: Sort edges by weight

    Edges sorted: (Z-W:1), (X-Y:2), (Y-Z:2), (X-Z:3), (W-X:4).
  2. Step 2: Add edges without cycles until all vertices connected

    Add (Z-W), then (X-Y), then (Y-Z). Now all vertices X, Y, Z, W are connected. Adding (W-X) or (X-Z) would create cycles, so skip them.
  3. Final Answer:

    (Z-W), (X-Y), (Y-Z) -> Option A
  4. Quick Check:

    Minimum spanning tree = edges with smallest weights connecting all nodes [OK]
Hint: Add smallest edges until all vertices connected, avoid cycles [OK]
Common Mistakes:
  • Adding extra edges causing cycles
  • Skipping necessary edges to connect all vertices
  • Choosing heavier edges before lighter ones
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