Generating balanced parenthesis strings by prefix shifts
Frank Ruskey,
  Department of Computer Science,
  University of Victoria, Canada.
Aaron Williams,
  Department of Computer Science,
  University of Victoria, Canada.
Abstract:
We show that the set Bn of balanced parentheses strings with
n left and n right parentheses can be generated by prefix shifts.
If b1,b2,...,b2n 
  is a member of Bn, then the k-th
  prefix shift is the string
b1, bk, b2, ..., 
   bk-1, bk+1, ..., 
   b2n.
Prefix shift algorithms are also known for combinations, and
permutations of a multiset; the combination algorithm appears
in fascicles of Knuth, vol. 4.   We show that the algorithm
is closely related to the combination algorithm, and like it,
has a loopless implementation, and a ranking algorithm that
uses O(n) arithmetic operations.  
Additionally, the algorithm can be directly translated 
  to generate all binary trees by a loopless implementation 
  that makes a constant number of pointer changes for each 
  successively generated tree.
- 
  The postscript file.
- 
  The pdf file.  
- 
  Accepted at the 
  CATS 
  2008 conference in Wollongong, Australia.
- 
  For related algorithms, see 
  Back to list of publications.