combstruct - Maple Programming Help

Home : Support : Online Help : Mathematics : Discrete Mathematics : Combinatorics : Combinatorial Structures : combstruct/iterstructs

combstruct

 iterstructs
 create an iterator for a specified structure
 nextstruct
 produce the next structure
 finished
 return true when the last structure is produced

 Calling Sequence iterstructs(struct(args), size=n) nextstruct(it) finished(it)

Parameters

 struct - one of a predefined list of available structures args - argument list that corresponds to the structure struct n - (optional) non-negative integer specifying the size of the object or the string 'allsizes' when the object should be selected from all possible sizes it - iterator returned by a call to iterstructs

Description

 • The iterstructs function returns an iterator in the form of a table. The nextstruct and finished functions are used to manipulate this table. The table entry nextvalue is a procedure created to traverse the elements defined by struct(args) of size $n$. The finished entry is a flag that is set to true when the last structure is produced.
 • The nextstruct command returns the next structure from the iterator defined by the call to iterstructs.
 • The finished function returns true when the last structure is produced.
 • If the size is not specified, the default size for that structure is used.
 • To list all the structures at once, see combstruct[allstructs].
 For a list of available structures, see combstruct[structures].

Examples

 > $\mathrm{with}\left(\mathrm{combstruct}\right):$
 > $\mathrm{allp}≔\mathrm{iterstructs}\left(\mathrm{Permutation}\left(\left[a,b,c\right]\right)\right):$
 > $\mathbf{while}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{not}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{finished}\left(\mathrm{allp}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{do}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{nextstruct}\left(\mathrm{allp}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end do}$
 $\left[{a}{,}{b}{,}{c}\right]$
 $\left[{b}{,}{a}{,}{c}\right]$
 $\left[{c}{,}{a}{,}{b}\right]$
 $\left[{a}{,}{c}{,}{b}\right]$
 $\left[{b}{,}{c}{,}{a}\right]$
 $\left[{c}{,}{b}{,}{a}\right]$ (1)
 >