We present an O(NV +V 3) time algorithm for enumerating all spanning trees of a directed graph. This improves the previous best known bound of O(NE + V + E) [1] when V 2 = o(N), which will be true for most graphs. Here, N refers to the number of spanning trees of a graph having V vertices and E edges. The algorithm is based on the technique of obtaining one spanning tree from another by a series of edge swaps. This result complements the result in the companion paper [3] which enumerates all spanning trees in an undirected graph in O(N + V + E) time. Key Words. Spanning tree, Directed graph, Enumeration.
Sanjiv Kapoor, H. Ramesh