def find_minimum_spanning_tree(graph):
mst = []<EOL>if graph.num_nodes() == <NUM_LIT:0>:<EOL><INDENT>return mst<EOL><DEDENT>if graph.num_edges() == <NUM_LIT:0>:<EOL><INDENT>return mst<EOL><DEDENT>connected_components = get_connected_components(graph)<EOL>if len(connected_components) > <NUM_LIT:1>:<EOL><INDENT>raise DisconnectedGraphError<EOL><DEDENT>edge_list = kruskal_mst(graph)<EOL>return edge_list<EOL>
Calculates a minimum spanning tree for a graph.
    Returns a list of edges that define the tree.
    Returns an empty list for an empty graph.