English

Generating pivot Gray codes for spanning trees of complete graphs in constant amortized time

Data Structures and Algorithms 2025-10-28 v1 Discrete Mathematics

Abstract

We present the first known pivot Gray code for spanning trees of complete graphs, listing all spanning trees such that consecutive trees differ by pivoting a single edge around a vertex. This pivot Gray code thus addresses an open problem posed by Knuth in The Art of Computer Programming, Volume 4 (Exercise 101, Section 7.2.1.6, [Knuth, 2011]), rated at a difficulty level of 46 out of 50, and imposes stricter conditions than existing revolving-door or edge-exchange Gray codes for spanning trees of complete graphs. Our recursive algorithm generates each spanning tree in constant amortized time using O(n2)O(n^2) space. In addition, we provide a novel proof of Cayley's formula, nn2n^{n-2}, for the number of spanning trees in a complete graph, derived from our recursive approach. We extend the algorithm to generate edge-exchange Gray codes for general graphs with nn vertices, achieving O(n2)O(n^2) time per tree using O(n2)O(n^2) space. For specific graph classes, the algorithm can be optimized to generate edge-exchange Gray codes for spanning trees in constant amortized time per tree for complete bipartite graphs, O(n)O(n)-amortized time per tree for fan graphs, and O(n)O(n)-amortized time per tree for wheel graphs, all using O(n2)O(n^2) space.

Keywords

Cite

@article{arxiv.2510.22662,
  title  = {Generating pivot Gray codes for spanning trees of complete graphs in constant amortized time},
  author = {Bowie Liu and Dennis Wong and Chan-Tong Lam and Sio-Kei Im},
  journal= {arXiv preprint arXiv:2510.22662},
  year   = {2025}
}

Comments

Accepted by SODA 2026

R2 v1 2026-07-01T07:06:26.706Z