list<edge>  SPANNING_TREE(const graph& G)  
SPANNING_TREE takes as argument a graph G(V, E). It computes a spanning
tree T of the underlying undirected graph, SPANNING_TREE returns the
list of edges of T.
The algorithm ([58]) has running time
O( V +  E).


void  SPANNING_TREE1(graph& G)  SPANNING_TREE takes as argument a graph G(V, E). It computes a spanning
tree T of the underlying undirected graph by deleting the edges in G that do not
belong to T.
The algorithm ([58]) has running time
O( V +  E).

list<edge>  MIN_SPANNING_TREE(const graph& G, const edge_array<int>& cost)  
MIN_SPANNING_TREE takes as argument a graph G(V, E) and an
edge_array cost giving for each edge an integer cost.
It computes a minimum spanning
tree T of the underlying undirected graph of graph G, i.e., a spanning tree such that the sum of all edge costs
is minimal. MIN_SPANNING_TREE returns the list of edges of T.
The algorithm ([52]) has running time
O( E log V).


list<edge>  MIN_SPANNING_TREE(const graph& G, const leda_cmp_base<edge>& cmp)  
A variant using a compare object to compare edge costs.  
list<edge>  MIN_SPANNING_TREE(const graph& G, int (*cmp)(const edge& , const edge& ))  
A variant using a compare function to compare edge costs. 