1995•SIAM Journal on ComputingRequires access

Algorithms for Enumerating All Spanning Trees of Undirected and Weighted Graphs

Sanjiv Kapoor, Harshitha Ramesh

Open publisher page 108 citations

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.

About this research paper

What this paper is about

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.

Why it matters

OpenAlex reports 108 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available 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.

Key concepts: Spanning tree, Trémaux tree, Combinatorics, Minimum spanning tree, Mathematics, k-minimum spanning tree, Connected dominating set, Computation

Related papers

Back to paper searchBrowse research topicsOriginal source
Algorithms for Enumerating All Spanning Trees of Undirected and Weighted Graphs — Research Paper | ScholarLens