TreeCount

TreeCount[tree,pattern]

gives the number of subtrees of tree whose data matches pattern.

TreeCount[tree,pattern,levelspec]

gives the total number of subtrees with data matching pattern that appear at the levels in tree specified by levelspec.

TreeCount[pattern]

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

Details

  • TreeCount gives the number of subtrees with data matching any pattern on any range of levels in a Tree object.
  • TreeCount uses standard level specifications as in TreeLevel:
  • nlevels 1 through n
    Alllevels 0 through Infinity
    Infinitylevels 1 through Infinity
    {n}level n only
    {n1,n2}levels n1 through n2
  • The default value for levelspec in TreeCount is {0,Infinity}.
  • A positive level n+1 consists of all subtrees of tree that are children of subtrees on level n.
  • Level 0 corresponds to the root of the tree.
  • Level -1 corresponds to the leaves.
  • A negative level -(n+1) consists of all subtrees whose children are on levels -1, -2, , -n, with highest level -n.
  • TreeCount traverses subtrees in a left-to-right, depth-first order, with children visited before their parents.
  • TreeCount[pattern][tree] is equivalent to TreeCount[tree,pattern].

Examples

open allclose all

Basic Examples  (3)

Count the number of subtrees whose data is an even number:

Count the inner subtrees whose data is an even number:

Use the operator form of TreeCount:

Scope  (5)

Count the subtrees whose data is an odd integer:

Count the subtrees at levels 1 and 2 whose data is an odd integer:

Count the leaf subtrees whose data is an odd integer:

Count the inner subtrees whose data is an odd integer:

Use the operator form of TreeCount:

Properties & Relations  (4)

TreeCount gives the number of matching subtrees given by TreeCases:

TreeSize[tree] is equivalent to TreeCount[tree,_]:

Count[expr,pattern,levelspec] is equivalent to TreeCount[ExpressionTree[expr,"Subexpressions"],pattern,levelspec]:

Count[expr,pattern,levelspec,HeadsTrue] is equivalent to TreeCount[ExpressionTree[expr,"Subexpressions",HeadsTrue],pattern,levelspec] for positive levels:

Possible Issues  (1)

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

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

Text

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2023_treecount, organization={Wolfram Research}, title={TreeCount}, year={2021}, url={https://reference.wolfram.com/language/ref/TreeCount.html}, note=[Accessed: 28-March-2024 ]}