Listing Spanning Trees of Outerplanar Graphs
by Pivot-Exchanges
Abstract
We prove that the spanning trees of any outerplanar triangulation can be listed so that any two consecutive spanning trees differ in an exchange of two edges that share an end vertex. For outerplanar graphs with faces of arbitrary lengths (not necessarily 3) we establish a similar result, with the condition that the two exchanged edges share an end vertex or lie on a common face. These listings of spanning trees are obtained from a simple greedy algorithm that can be implemented efficiently, i.e., in time per generated spanning tree, where is the number of vertices of . Furthermore, the listings correspond to Hamilton paths on the 0/1-polytope that is obtained as the convex hull of the characteristic vectors of all spanning trees of .
Keywords and phrases:
Spanning tree, generation, edge exchange, Hamilton path, Gray codeCopyright and License:
![[Uncaptioned image]](x1.png)
2012 ACM Subject Classification:
Mathematics of computing TreesAcknowledgements:
We thank both reviewers of this paper for a number of very helpful suggestions that improved the writing.Funding:
This work was supported by Czech Science Foundation grant GA 22-15272S. Both authors participated in the workshop “Combinatorics, Algorithms and Geometry” in March 2024, which was funded by German Science Foundation grant 522790373.Editors:
Olaf Beyersdorff, Michał Pilipczuk, Elaine Pimentel, and Nguyễn Kim ThắngSeries and Publisher:

1 Introduction
For a given graph , let denote the set of all spanning trees of . Two spanning trees of differ in an edge exchange if the symmetric difference of their edge sets is a 2-element set, i.e., each of the two spanning trees is obtained from the other one by removing one edge and adding another. The flip graph has the set as vertex set, and an edge between any two spanning trees that differ in an edge exchange; see Figure 1. It is well-known that is the skeleton of the 0/1-polytope that is obtained as the convex hull of all characteristic vectors of spanning trees (see [25, Thm. 40.6]). Specifically, if the edge set of is , then for all the characteristic vector has a 1-bit at position if the edge belongs to , and a 0-bit at position otherwise.
We are interested in computing Hamilton paths or cycles in the flip graph , i.e., we aim to list all spanning trees of such that any two consecutive spanning trees differ in an edge exchange. Such a listing of combinatorial objects subject to some small-change condition is generally referred to as a Gray code [24, 19]. A Gray code is called cyclic if the first and last object also differ in the small-change condition, i.e., this corresponds to a Hamilton cycle in the flip graph.
Cummins [8] first proved that admits a Hamilton cycle for any graph . He showed more generally that for any prescribed edge of , there is a Hamilton cycle containing this edge. Similar results were obtained by Shank [26], Kamae [11], and Kishi and Kajitani [13].
Harary and Holzmann [10] proved more generally that the base exchange flip graph of any matroid has a Hamilton cycle. They showed this in the stronger sense that any edge of this flip graph can be prescribed to be contained in the cycle, and to be avoided by another cycle. Furthermore, Naddef and Pulleyblank [20, 21] proved that the skeleton of any 0/1-polytope either admits a Hamilton path between any two prescribed end vertices, or it is a hypercube, in which case it admits a Hamilton path between any two end vertices of opposite parity.
Algorithmically, a Hamilton path in can be computed in time on average per generated tree using Smith’s algorithm [30] (this is Algorithm S in [14, Sec. 7.2.1.6]); see Figure 2 (a). Given these strong Hamiltonicity properties of the graph , there has recently been interest to strengthen them by restricting the allowed edge exchanges.
1.1 The pivot-exchange property
We introduce some more notation. For a graph , we write and for set of vertices and edges of , respectively. For a subgraph and edges and , we write and for the graphs obtained from by removing and adding the edges and , respectively. We will think of a subgraph as a subset of edges from , so the operations and remove and add an element from the set, respectively. Formally, an edge exchange for a spanning tree is a pair of edges such that and with .
Cameron, Grubb, and Sawada [3] introduced the stronger notion of a pivot-exchange, which is an exchange with the additional property that and have a common end vertex. For example, in the graph shown in Figure 1, all exchanges except and are pivot-exchanges. They raised the following problem.
Problem 1.
Does every graph admit a pivot-exchange Gray code of its spanning trees?
Additionally, they asked if such a listing can be computed using a greedy strategy, and possibly by an efficient algorithm. Problem 1 is a special case of a more general question raised by Knuth in Vol. 4A of his seminal series “The Art of Computer Programming” [14], stated as problem 102 in Section 7.2.1.6 with a difficulty rating of 46/50: 111A flawed attempt at settling this problem was published in [5] (see [22]).
Problem 2.
Does every directed graph admit an edge exchange Gray code of its oriented spanning trees, also known as arborescences, i.e., spanning trees in which all arcs are oriented away from a fixed root vertex ?
Note that for any exchange in this directed setting, in order to preserve the arborescence property, the arcs and must point to the same vertex, i.e., it must be a pivot-exchange. Furthermore, a positive answer to Problem 2 would imply an affirmative answer to Problem 1: Indeed, given an undirected graph , construct the directed graph by replacing each undirected edge of by two oppositely oriented arcs, and pick an arbitrary vertex as root . Listing the oriented spanning trees of by arc exchanges produces every spanning tree of exactly once, namely in the orientation forced by the choice of .
1.2 Fan graphs
As a first step towards Problem 1, Cameron, Grubb, and Sawada [3] provided a pivot-exchange Gray code for listing the spanning trees of fan graphs , which are obtained by joining an extra vertex to all vertices of a path on vertices; see Figure 3.
Theorem 3 ([3, Thm. 4]).
For any , there is a pivot-exchange Gray code for the spanning trees of .
The output of their algorithm for the case is shown in Figure 2 (b). The algorithm uses a greedy strategy that prioritizes exchanges based on vertex labels.
1.3 A simple greedy algorithm
Merino, Mütze and Williams [17] discovered a simple greedy algorithm for listing the spanning trees of a graph by (arbitrary) edge exchanges. The algorithm operates based on a total ordering of the edges of , which is captured by labeling the edges by integers. Specifically, if denotes the number of edges of , then an edge labeling is a bijection . For an edge , we refer to as the label of the edge . In the following examples, we will often identify edges by their labels. In particular, edge exchanges will be denoted by the pairs of labels . We will also use the abbreviation .
This algorithm greedily generates the spanning trees of a graph with edges via edge exchanges, using an edge labeling and an initial spanning tree .
-
G1.
[Initialize] Visit the initial spanning tree .
-
G2.
[Exchange] Perform an edge exchange in the current spanning tree that minimizes the larger of the two edge labels in the exchange and that yields an unvisited spanning tree from . If no such exchange exists, then terminate. Otherwise visit this new spanning tree and repeat G2.
The output of Algorithm G when applied to the fan graph is shown in Figure 2 (c), using the edge labeling displayed on the left. To illustrate the greedy rule in step G2, when reaching the sixth spanning tree , there are seven possible edge exchanges to obtain another spanning tree in , namely , , , , , and ; see Figure 4. Only , , and give an unvisited spanning tree, and among those, and , minimize the larger label, which is 4. In this case, the exchange is applied, but would be a valid alternative for the algorithm.
In general, in step G2 there may be several edge exchanges
(1) |
applicable to the current spanning tree to give an unvisited spanning tree, which all have as the larger label, differing only in the smaller label , . We refer to such a situation as a tie. A tie-breaking rule is a procedure that determines which exchange to apply in case of a tie.
By definition of the step G2, Algorithm G only selects edge exchanges that result in a previously unvisited spanning tree of , i.e., the produced listing of spanning trees will not contain repetitions. However, it could be that the algorithm terminates before having visited the entire set , a situation that is ruled out by the next theorem.
Theorem 4 ([17, Thm. 10]).
For any graph , for any edge labeling of , for any initial spanning tree , and for any tie-breaking rule, Algorithm G yields a genlex listing of all spanning trees of .
A listing of bitstrings is called genlex if all strings with the same suffix appear consecutively. In particular, all strings ending with 0 appear before all strings ending with 1, or vice versa. A genlex listing of bitstrings is also sometimes referred to as suffix-partitioned in the literature. Note that genlex order generalizes colexicographic order. In the context of spanning trees, the genlex property refers to the corresponding characteristic vectors of spanning trees ; see the right-hand side of Figure 2 (c). In other words, all spanning trees not containing the highest-labeled edge appear before all spanning trees containing this edge, or vice versa, and this property is true recursively within the blocks.
1.4 The face-exchange property
The paper [17] also introduced another closeness condition for edge exchanges, which is well-defined only for plane graphs. Specifically, a face-exchange between two spanning trees of a plane graph is an exchange of two edges that lie on a common face. If an edge exchange is both a pivot-exchange and face-exchange, then we refer to it as a pivotface-exchange. A weaker requirement is that it is a pivot-exchange or a face-exchange, and then we refer to it as a pivotface-exchange. These notions give rise to the following question.
Problem 5.
Does every plane graph admit a pivotface-exchange or a pivotface-exchange Gray code of its spanning trees?
Pivot- and face-exchanges are connected through the well-known concept of the dual graph; see Figure 5 (a). For a plane graph , we write for the set of faces of . The dual graph is the plane graph obtained from as follows: For every face , the dual graph has a vertex , and for every edge of between faces and of , the dual graph has the edge . For every vertex , we write for the corresponding face of dual to it. For a spanning tree , the dual spanning tree has the dual edge for every non-edge and a dual non-edge for every edge ; see Figure 5 (b). Observe that a pivot-exchange in is a face-exchange in the dual spanning tree ; see Figure 5 (c). Symmetrically, a face-exchange in is a pivot-exchange in .
Merino, Mütze and Williams [17] strengthened Theorem 3, by showing that for a suitable edge labeling of the fan graph and a suitable tie-breaking rule, Algorithm G yields a pivotface-exchange Gray code. Specifically, the edges of are labeled from left-to-right, as shown in Figure 2 (c), and ties are broken according to the closest tie-breaking rule, which in case of a tie as in (1) selects the exchange , i.e., the exchange that maximizes the smaller of the edge labels (equivalently, the one for which the smaller label is closest to the larger label ).
Theorem 6.
For any , for the left-to-right labeling of the edges of , for any initial spanning tree , and for the closest tie-breaking rule, Algorithm G yields a genlex pivotface-exchange Gray code for the spanning trees of .
In fact, the Gray code from Theorem 3 also has the stronger pivotface-exchange property.
(a) | (b) |
1.5 Our results
In this work, we solve Problems 1 and 5 for certain families of plane graphs that generalize fan graphs, thus generalizing Theorems 3 and 6.
An outerplane graph is a plane graph in which all vertices are incident to the outer face. An outerplane graph is a triangulation if all of its faces, except possibly the outer face, are triangles. Note that fan graphs are a very special case of outerplane triangulations.
Theorem 7.
For any outerplane triangulation , there is an edge labeling of , so that for any initial spanning tree , there is a tie-breaking rule for which Algorithm G yields a genlex pivot-exchange Gray code for the spanning trees of .
Theorem 8.
For any outerplane graph , there is an edge labeling of , so that for any initial spanning tree , there is a tie-breaking rule for which Algorithm G yields a genlex pivotface-exchange Gray code for the spanning trees of .
These theorems directly yield efficient algorithms. Specifically, using the techniques described in [16, Sec. 7.2+Cor. 32], Algorithm G can be implemented to output each spanning tree in time , where is the number of vertices of . The required space for the algorithm is . In particular, this implementation is history-free in the sense that no previously computed spanning trees apart from the current spanning tree need to be stored, plus some simple data structures for bookkeeping.
Two examples of Gray code listings of spanning trees obtained from these theorems are shown in Figure 6.
Corollary 9.
Any outerplane triangulation admits a genlex pivot-exchange Gray code of its spanning trees. Any outerplane graph admits a genlex pivotface-exchange Gray code of its spanning trees.
The weak dual graph of a plane graph , denoted is the graph obtained from the dual graph by removing the vertex corresponding to the outer face of ; see Figure 7 (a).
Note that is a 2-connected outerplane graph if and only if the weak dual is a tree; see Figure 7 (b). Also note that is a path if and only if is 2-connected and all but at most two sides of every inner face are incident with the outer face; see Figure 7 (c). In particular, for a triangulation , we have that is a path if and only if is 2-connected and at least one side of every triangle touches the outer face. This is true in particular for fan graphs .
We show that fan graphs, and more generally outerplane triangulations for which the weak dual is a path, are exactly the outerplane graphs that have the maximum number of spanning trees for a fixed number of edges. Moreover, the counts are the Fibonacci numbers, defined as , and
(2) |
for all . We write for the number of spanning trees of .
Theorem 10.
For any outerplane graph with edges we have , with equality if and only if is a triangulation such that is a path.
The identity when is a triangulation for which is a path was already noticed by Slater [29, Prop. 1].
Remark 11.
We remark that Problems 1, 2 and 5 are perfectly valid also for multigraphs, i.e., graphs that may have parallel edges and/or loops (though loops are irrelevant in the context of spanning trees). In fact, Theorems 4, 7 and 8, and hence Corollary 9, also hold in this more general setting. An “outerplane triangulation” in this case has all inner faces of lengths at most 3, instead of exactly 3. The time and space bounds stated after Theorem 8 change to and , respectively, where is the number of edges of the multigraph. However, for simplicity we do our proofs in the setting of simple graphs, where no parallel edges nor loops are allowed. Nonetheless, our proof of Theorem 10 will actually use multigraphs.
Remark 12.
The listings of spanning trees produced by Algorithm are in general not Hamilton cycles in , but only Hamilton paths, i.e., the first and last spanning tree in general do not differ in an edge exchange. This remark applies to all the Gray codes mentioned in Theorems 4, 6, 7, and 8, and in Corollary 9. For some graphs, some edge labelings, and some initial spanning trees, however, the Gray codes are cyclic, such as the one mentioned in Theorem 6 for the L-shaped initial spanning tree shown in Figure 2 (c), which ends with the mirrored L.
1.6 Related work
There has been an extensive amount of work [23, 9, 15, 12, 27, 28] on efficiently generating the set of all spanning trees of , without the requirement that any two consecutive trees differ in an edge exchange, i.e., the computed listings are not Hamilton paths or cycles in the flip graph . The algorithms in the last three of the aforementioned papers achieve this in time on average per generated tree. See the survey [4] for a comparison of the different algorithms.
If instead of listing all spanning trees of , we want to count them, then this can be achieved by Kirchhoff’s Matrix-Tree Theorem, which reduces the problem to computing a determinant, which can be done efficiently. This problem is closely connected to finding the so-called most vital edge of , which is the edge contained in the most spanning trees from . Random sampling [1, 2] and ranking/unranking [6, 7] of spanning trees have also been considered.
1.7 Outline of this paper
2 Proof of Theorems 7 and 8
For the proofs of Theorems 7 and 8, we will assume w.l.o.g. that the outerplane graph is 2-connected. If is not 2-connected, then all the arguments presented in the following apply to each of its blocks, and the spanning trees of are obtained by combining the spanning trees in each block in all possible ways, and pivot- or face-exchanges remain valid within the blocks.
We first describe the labeling of edges of a 2-connected outerplane graph that we use in order to run Algorithm G on the graph . We then establish two important properties of these labelings (Lemmas 13 and 14) that are crucial to show that whenever an arbitrary edge exchange becomes applicable in step G2 of Algorithm G, then ties can be broken to instead use a pivot- or face-exchange (Lemma 15).
2.1 The edge labeling
To define the edge labeling, we need another definition. Let be the vertex of corresponding to the outer face of , and let be the degree of . The split dual graph, denoted , is obtained from by splitting into many degree-1 vertices, one adjacent to each neighbor of ; see Figure 8 (a).
Note that the weak dual graph is a tree if and only if the split dual graph is a tree; see Figures 7 (b) and 8 (b). Furthermore, is a path if and only if is a caterpillar, i.e., a tree in which all vertices are in distance from a central path; see Figures 7 (c) and 8 (c).
Let be a 2-connected outerplane graph with edges. We consider the split dual tree , we pick a leaf of this tree as root, and we orient all of its edges away from , giving an oriented tree , referred to as oriented split dual. We label the edges of in a depth-first-search manner with integers , starting at the root and processing subtrees in counterclockwise (ccw) order; see Figure 9. The labeling of the edges of induces a labeling of the corresponding dual edges of with integers from . We refer to this labeling of the edges of as dual-tree labeling. Note that there is freedom in the choice of the root in the tree , and different choices yield different oriented split dual trees and hence different edge labelings of the same graph . Note that the left-to-right labeling of the fan graph shown in Figure 2 (c) is one particular dual-tree labeling.
2.2 Proofs of theorems
Throughout this section, we let be a 2-connected outerplane graph with edges, an oriented split dual tree, and the corresponding dual-tree labeling of the edges of . Before proving Theorems 7 and 8, we first derive two properties of the edge labelings defined in the previous section, stated in Lemmas 13 and 14 below.
The following definitions are illustrated in Figure 10. We denote a face of of length by the sequence of edges bounding this face in ccw order, starting with the edge whose dual edge in is oriented towards (all other edges of are oriented away from ). For a face and an index , the -lobe is the set of edges of that are dual to the edges in the maximal subtree of that contains the edge , but none of the other edges , .
Lemma 13.
For any face of , we have . Furthermore, for any and we have , and if .
Proof.
This is an immediate consequence of the labeling procedure which processes subtrees in the oriented split dual in ccw order and in a depth-first-search manner. Specifically, for all , all edges of are labeled directly after , and directly before if .
For a vertex of , the incidence list is the sequence of edges incident to in clockwise order around , starting and ending with the two edges that bound the outer face; see Figure 11. We say that an edge incident with is a cw-edge or ccw-edge, respectively, according to the clockwise or counterclockwise orientation of the dual edge in around .
Lemma 14.
For any vertex , let be its incidence list. Then there is an index such that are ccw-edges, are cw-edges, and we have . In particular, for any cw-edge and any we have .
Proof.
For any sequence of edges that form a path in the oriented tree , there is an index such that are oriented towards the start vertex of and are oriented towards the end vertex of . The special cases and mean that the path is oriented conformly, towards the end or start vertex, respectively.
The sequence of dual edges is a path in to which the aforementioned observation applies. For , let be the face of bounded by and . Furthermore, we denote the outer face of by . Note that is oriented towards in for , i.e., these are all ccw-edges w.r.t. . Furthermore, is oriented towards in for , i.e., these are all cw-edges w.r.t. .
Applying Lemma 13 to the faces , and , yields and , respectively. Furthermore, applying Lemma 13 to and proves that . Combining these inequalities proves the lemma.
Lemma 15.
Let and let with be an edge exchange for . Then there is a pivotface-exchange with . Furthermore, if is a triangulation, then is a pivot-exchange.
Proof.
We let be the face incident with in for which the dual edge in is oriented away from . As we have , and consequently is not the outer face, but an inner face. We have for some . The graph contains exactly one cycle , which contains both edges and . As , Lemma 13 implies that , and as , we obtain that contains edges from every lobe for all , and furthermore for some .
We now distinguish the cases whether or , i.e., whether the exchange adds the edge and removes , or removes and adds , respectively. These two cases are illustrated in Figure 12 (a) and (b), respectively.
Case (a).
. Note that with is a valid face-exchange for , and we have by Lemma 13. Furthermore, if is a triangulation, then we have and consequently and share an end vertex, so the exchange is a pivot-exchange.
Case (b).
. Let be the edge of incident with in the lobe . Note that is a valid pivot-exchange for . If , then we have by Lemma 13. If , then let be the common end vertex of and , and consider the incidence list of . The edge is a cw-edge and comes before it (or is equal to ) on the list , and so Lemma 14 yields . By Lemma 13 we have and therefore .
Proof of Theorems 7 and 8.
By Lemma 15, whenever Algorithm G considers an edge exchange with , there is a pivotface-exchange with . By Theorem 4, the listing of spanning trees produced by Algorithm G has the genlex property, which implies that if is unvisited, then is also unvisited. It follows that there is a tie-breaking rule for Algorithm G to only ever use pivotface-exchanges.
3 Proof of Theorem 10
We prove Theorem 10 in the more general setting of multigraphs (recall Remark 11), i.e., from now on we allow multiple edges between pairs of vertices. Two edges between the same pair of vertices are sometimes referred to as parallel edges. Loops may be present, but are never contained in a spanning tree and hence irrelevant for us. However, the distinction of parallel edges is important. For example, the plane graph formed by two vertices connected by parallel edges has different spanning trees, each containing exactly one of the edges.
All notions introduced in Section 1 are valid in the more general context of multigraphs. The only exception is the definition of an outerplane triangulation, which we change from “face length 3” to “face length ”. A length-2 face comes from two parallel edges, and is called a digon.
In addition to edge removal and edge addition, we now also introduce the operation of edge contraction. Given a graph and an edge , we write for the graph obtained from by contracting the edge . Note that even if is a simple graph, may still contain parallel edges, and if has parallel edges, then may contain loops (which can be ignored when counting spanning trees). The number of spanning trees of a graph obeys the well-known recursive relation
(3) |
valid for any (non-loop) edge (see [18]).
We need the following auxiliary lemma about Fibonacci numbers.
Lemma 16.
For any two integers , we have , with equality if and only if or .
Proof.
If or , then one can check directly that the claimed equality holds.
Now assume that . We prove that by induction on . In the base case we have and therefore and , so the claim is true. For the induction step we distinguish the cases and . If we have (recall that ). If we have . It remains to consider the case . We have
where the strict inequality in the third step holds by induction, using that .
Theorem 10 is an immediate consequence of the following more general statement for multigraphs.
Theorem 17.
For any outerplane (multi)graph with edges we have , with equality if and only if is a triangulation such that is a path and all digons are incident with the outer face.
Note that digons incident with the outer face correspond to degree 1 vertices in the dual graph , so if is a path, then there are at most two such digons corresponding to end vertices of the path.
Proof.
We argue by induction on . The induction basis is trivial. For the induction step we assume that .
If is not 2-connected, then it has at least two blocks and with and edges, respectively, where . We have and therefore , where the strict inequality follows from Lemma 16.
It remains to consider the case that is 2-connected. If is a single edge, then . If has only one inner face, then it is a cycle and we have , and this inequality is tight for and strict for . The same estimates hold if all inner faces of are digons, i.e., has 2 vertices and all edges are parallel to each other. For the rest of the proof we assume that has at least two faces, not all of which are digons. This implies in particular that . We consider a face of for which the dual vertex has degree at most 1 in . We denote the sequence of edges bounding by in clockwise order, ending with the edge that has a dual edge in . We distinguish two cases, namely whether is a digon () or not (), and we bound the number of spanning trees using (3) with respect to the edge , i.e., the first edge of the face . These two cases are illustrated in Figure 14 (a) and (b), respectively.
Case (a).
. has edges, and therefore
(4) |
by induction. Let be the number of edges that are parallel to (including and ), and denote them by in ccw order around the corresponding common end vertex; see Figure 14 (a). Furthermore, we let be the face incident with but not . In the graph , the edges are loops, and we can therefore remove all of them, so we have
(5) |
by induction. Combining (2), (3), (4), and (5) proves that , as claimed. Furthermore, this inequality is tight if and only if (4) and (5) are tight, which happens if and only if the conditions stated in the theorem hold for and , which happens if and only if and is a triangle that is incident with the outer face, if and only if the conditions stated in the theorem hold for .
Case (b).
. Let be the face incident with but not . has edges, and therefore
(6) |
by induction. In the graph , the edges are present in every spanning tree, so we have
(7) |
by induction. Combining (2), (3), (6) and (7) proves that , as claimed. Furthermore, this inequality is tight if and only if (6) and (7) are tight, which happens if and only if the conditions stated in the theorem hold for and , which happens if and only if and is a triangle that is incident with the outer face, if and only if the conditions stated in the theorem hold for .
4 Open problems
Problems 1 and 5 remain open for general graphs, i.e., for graphs not covered by Theorems 7 and 8 (recall Remark 11). Also, Knuth’s more general Problem 2 for directed graphs remains very much open.
Concerning Problem 1, we checked experimentally that all 2-connected graphs on up to 6 vertices admit a pivot-exchange Gray code for their spanning trees, and these Gray codes are all cyclic. Regarding Problem 2, we checked that all directed graphs on up to 5 vertices (oppositely oriented arcs are allowed) whose underlying undirected graph is 2-connected admit an edge exchange Gray code for their arborescences, for any choice of fixed root. In some cases those flip graphs admit no Hamilton cycle, but only a Hamilton path (see [22]), so not all of these Gray codes are cyclic. Regarding Problem 5, we checked that all outerplane graphs on up to 6 vertices admit a cyclic pivotface-exchange Gray code for their spanning trees.
Furthermore, Knuth [14] asked in Exercise 101 in Section 7.2.1.6 whether the complete graph admits a “nice” Gray code listing of its spanning trees. One interpretation of this question, in the spirit of Problem 1, could be: Is there a pivot-exchange Gray code for the spanning trees of ? Alternatively, is there a Gray code listing that provides a more fine-grained explanation of Cayley’s formula for the number of spanning trees? Similar questions can be asked for the complete bipartite graph .
Does Theorem 10 hold without the outerplane requirement for sufficiently large? The only complete graphs that violate the bound arise for .
References
- [1] D. J. Aldous. The random walk construction of uniform spanning trees and uniform labelled trees. SIAM J. Discrete Math., 3(4):450–465, 1990. doi:10.1137/0403039.
- [2] A. Z. Broder. Generating random spanning trees. In 30th Annual Symposium on Foundations of Computer Science, Research Triangle Park, North Carolina, USA, 30 October - 1 November 1989, pages 442–447. IEEE Computer Society, 1989. doi:10.1109/SFCS.1989.63516.
- [3] B. Cameron, A. Grubb, and J. Sawada. Pivot Gray codes for the spanning trees of a graph ft. the fan. Graphs Combin., 40(4):Paper No. 78, 26 pp., 2024. doi:10.1007/s00373-024-02808-2.
- [4] M. Chakraborty, S. Chowdhury, J. Chakraborty, R. Mehera, and R. K. Pal. Algorithms for generating all possible spanning trees of a simple undirected connected graph: an extensive review. Complex & Intelligent Systems, 5:265–281, 2019.
- [5] W.-K. Chen. Hamilton circuits in directed-tree graphs. IEEE Trans. Circuit Theory, CT-14:231–233, 1967.
- [6] C. J. Colbourn, R. P. J. Day, and L. D. Nel. Unranking and ranking spanning trees of a graph. J. Algorithms, 10(2):271–286, 1989. doi:10.1016/0196-6774(89)90016-3.
- [7] C. J. Colbourn, W. J. Myrvold, and E. Neufeld. Two algorithms for unranking arborescences. J. Algorithms, 20(2):268–281, 1996. doi:10.1006/jagm.1996.0014.
- [8] R. L. Cummins. Hamilton circuits in tree graphs. IEEE Trans. Circuit Theory, CT-13:82–90, 1966.
- [9] H. N. Gabow and E. W. Myers. Finding all spanning trees of directed and undirected graphs. SIAM J. Comput., 7(3):280–287, 1978. doi:10.1137/0207024.
- [10] C. A. Holzmann and F. Harary. On the tree graph of a matroid. SIAM J. Appl. Math., 22:187–193, 1972. doi:10.1137/0122021.
- [11] T. Kamae. The existence of a Hamilton circuit in a tree graph. IEEE Trans. Circuit Theory, CT-14:279–283, 1967.
- [12] S. Kapoor and H. Ramesh. Algorithms for generating all spanning trees of undirected, directed and weighted graphs. In Algorithms and data structures (Ottawa, ON, 1991), volume 519 of Lecture Notes in Comput. Sci., pages 461–472. Springer, Berlin, 1991. doi:10.1007/BFb0028284.
- [13] G. Kishi and Y. Kajitani. On Hamilton circuits in tree graphs. IEEE Trans. Circuit Theory, CT-15(1):42–50, 1968.
- [14] D. E. Knuth. The Art of Computer Programming. Vol. 4A. Combinatorial Algorithms. Part 1. Addison-Wesley, Upper Saddle River, NJ, 2011.
- [15] T. Matsui. A flexible algorithm for generating all the spanning trees in undirected graphs. Algorithmica, 18(4):530–543, 1997. doi:10.1007/PL00009171.
- [16] A. Merino and T. Mütze. Traversing combinatorial 0/1-polytopes via optimization. SIAM J. Comput., 53(5):1257–1292, 2024. doi:10.1137/23M1612019.
- [17] A. Merino, T. Mütze, and A. Williams. All your are belong to us: listing all bases of a matroid by greedy exchanges. In 11th International Conference on Fun with Algorithms, volume 226 of LIPIcs. Leibniz Int. Proc. Inform., pages Paper No. 22, 28. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/lipics.fun.2022.22.
- [18] G. Minty. A simple algorithm for listing all the trees of a graph. IEEE Trans. Circuit Theory, 12(1):120, 1965.
- [19] T. Mütze. Combinatorial Gray codes—an updated survey. Electron. J. Combin., DS26(Dynamic Surveys):99 pp., 2023. doi:10.37236/11023.
- [20] D. J. Naddef and W. R. Pulleyblank. Hamiltonicity and combinatorial polyhedra. J. Combin. Theory Ser. B, 31(3):297–312, 1981. doi:10.1016/0095-8956(81)90032-0.
- [21] D. J. Naddef and W. R. Pulleyblank. Hamiltonicity in --polyhedra. J. Combin. Theory Ser. B, 37(1):41–52, 1984. doi:10.1016/0095-8956(84)90043-1.
- [22] V. Rao and N. Raju. On tree graphs of directed graphs. IEEE Trans. Circuit Theory, 19(3):282–283, 1972.
- [23] R. C. Read and R. E. Tarjan. Bounds on backtrack algorithms for listing cycles, paths, and spanning trees. Networks, 5(3):237–252, 1975. doi:10.1002/net.1975.5.3.237.
- [24] C. D. Savage. A survey of combinatorial Gray codes. SIAM Rev., 39(4):605–629, 1997. doi:10.1137/S0036144595295272.
- [25] A. Schrijver. Combinatorial optimization. Polyhedra and efficiency. Vol. B, volume 24 of Algorithms and Combinatorics. Springer-Verlag, Berlin, 2003. Matroids, trees, stable sets, Chapters 39–69.
- [26] H. Shank. A note on Hamilton circuits in tree graphs. IEEE Trans. Circuit Theory, 15(1):86, 1968. doi:10.1109/TCT.1968.1082765.
- [27] A. Shioura and A. Tamura. Efficiently scanning all spanning trees of an undirected graph. J. Oper. Res. Soc. Japan, 38(3):331–344, 1995. doi:10.15807/jorsj.38.331.
- [28] A. Shioura, A. Tamura, and T. Uno. An optimal algorithm for scanning all spanning trees of undirected graphs. SIAM J. Comput., 26(3):678–692, 1997. doi:10.1137/S0097539794270881.
- [29] P. J. Slater. Fibonacci numbers in the count of spanning trees. Fibonacci Quart., 15(1):11–14, 1977.
- [30] M. J. Smith. Generating spanning trees. Master’s thesis, University of Victoria, 1997.