Abstract.
In this paper we propose an algorithm for generating all the spanning trees in undirected graphs. The algorithm requires O (n+m+ τ n) time where the given graph has n vertices, m edges, and τ spanning trees. For outputting all the spanning trees explicitly, this time complexity is optimal.
Our algorithm follows a special rooted tree structure on the skeleton graph of the spanning tree polytope. The rule by which the rooted tree structure is traversed is irrelevant to the time complexity. In this sense, our algorithm is flexible.
If we employ the depth-first search rule, we can save the memory requirement to O (n+m). A breadth-first implementation requires as much as O (m+ τ n) space, but when a parallel computer is available, this might have an advantage. When a given graph is weighted, the best-first search rule provides a ranking algorithm for the minimum spanning tree problem. The ranking algorithm requires O (n+ m + τ n) time and O (m+ τ n) space when we have a minimum spanning tree.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received January 21, 1995; revised February 19, 1996.
Rights and permissions
About this article
Cite this article
Matsui, T. A Flexible Algorithm for Generating All the Spanning Trees in Undirected Graphs. Algorithmica 18, 530–543 (1997). https://doi.org/10.1007/PL00009171
Issue Date:
DOI: https://doi.org/10.1007/PL00009171