# TreeSelect

TreeSelect[tree,crit]

picks out all subtrees treei of tree for which crit[treei] is True.

TreeSelect[tree,crit,n]

picks out the first n subtrees for which crit[treei] is True.

TreeSelect[tree,crit,n,levelspec]

picks out subtrees on levels specified by levelspec.

TreeSelect[crit]

represents an operator form of TreeSelect that can be applied to a tree.

# Details and Options

• TreeSelect lists the subtrees satisfying any criterion on any range of levels in a Tree object. The list of results can be given in many different orders, including depth-first and breadth-first traversals.
• TreeSelect[tree,crit] tests all the subtrees of tree in turn to try to find ones satisfying the criterion crit.
• TreeSelect uses standard level specifications as in TreeLevel:
•  n levels 1 through n All levels 0 through Infinity Infinity levels 1 through Infinity {n} level n only {n1,n2} levels n1 through n2
• TreeSelect traverses subtrees in a left-to-right, depth-first order, with children visited before their parents.
• TreeSelect[,TreeTraversalOrderorder] allows visiting subtrees in different orders, such as depth-first and breadth-first traversals.
• TreeSelect[crit][tree] is equivalent to TreeSelect[tree,crit].

# Examples

open allclose all

## Basic Examples(4)

Select the subtrees whose root node has an even number as data:

Get the first six leaves of a tree:

Get the first two leaves of the first two levels:

Use the operator form of TreeSelect:

## Scope(3)

Select all subtrees with three children:

Select the first two subtrees with two children:

Use TreeSelect as an operator form in a tree position specification:

## Options(3)

### TreeTraversalOrder(3)

By default, subtrees are listed in a depth-first order, with parents visited after their children:

Specify a top-down, right-to-left variant:

List subtrees in a breadth-first order, with nodes on the same level from the root visited before the nodes on the next level:

List subtrees in a leaves-first order, with nodes on the same level from the leaves visited before the nodes on the next level:

## Properties & Relations(1)

TreeSelect[tree,crit,Infinity,Infinity] is equivalent to TreeChildren@TreeExtract[tree,TreeSelect[crit]]:

## Possible Issues(1)

TreeSelect by default starts at level 1, so does not visit the root:

Wolfram Research (2021), TreeSelect, Wolfram Language function, https://reference.wolfram.com/language/ref/TreeSelect.html (updated 2021).

#### Text

Wolfram Research (2021), TreeSelect, Wolfram Language function, https://reference.wolfram.com/language/ref/TreeSelect.html (updated 2021).

#### CMS

Wolfram Language. 2021. "TreeSelect." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/TreeSelect.html.

#### APA

Wolfram Language. (2021). TreeSelect. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeSelect.html

#### BibTeX

@misc{reference.wolfram_2024_treeselect, author="Wolfram Research", title="{TreeSelect}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/TreeSelect.html}", note=[Accessed: 29-May-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_treeselect, organization={Wolfram Research}, title={TreeSelect}, year={2021}, url={https://reference.wolfram.com/language/ref/TreeSelect.html}, note=[Accessed: 29-May-2024 ]}