Algorithms for Enumerating All Spanning Trees of Undirected and Weighted Graphs
Sanjiv Kapoor, Harshitha Ramesh
Abstract
Sanjiv Kapoor, Harshitha Ramesh
Abstract
In this paper, we present algorithms for enumeration of spanning trees in undirected graphs, with and without weights. The algorithms use a search tree technique to construct a computation tree. The computation tree can be used to output all spanning trees by outputting only relative changes between spanning trees rather than the entire spanning trees themselves. Both the construction of the computation tree and the listing of the trees is shown to require $O(N + V + E)$ operations for the case of undirected graphs without weights. The basic algorithm is based on swapping edges in a fundamental cycle. For the case of weighted graphs (undirected), we show that the nodes of the computation tree of spanning trees can be sorted in increasing order of weight, in $O(N \log V + V E)$ time. The spanning trees themselves can be listed in $O(NV)$ time. Here N, V, and E refer, respectively, to the number of spanning trees, vertices, and edges of the graph.
OpenAlex reports 108 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
In this paper, we present algorithms for enumeration of spanning trees in undirected graphs, with and without weights. The algorithms use a search tree technique to construct a computation tree. The computation tree can be used to output all spanning trees by outputting only relative changes between spanning trees rather than the entire spanning trees themselves. Both the construction of the computation tree and the listing of the trees is shown to require $O(N + V + E)$ operations for the case of undirected graphs without weights. The basic algorithm is based on swapping edges in a fundamental cycle. For the case of weighted graphs (undirected), we show that the nodes of the computation tree of spanning trees can be sorted in increasing order of weight, in $O(N \log V + V E)$ time. The spanning trees themselves can be listed in $O(NV)$ time. Here N, V, and E refer, respectively, to the number of spanning trees, vertices, and edges of the graph.
Key concepts: Spanning tree, Trémaux tree, Combinatorics, Minimum spanning tree, Mathematics, k-minimum spanning tree, Connected dominating set, Computation