TreeMap
TreeMap[f,tree]
applies f to the data of each subtree of tree.
TreeMap[f,tree,levelspec]
applies f to the data of subtrees on levels of tree specified by levelspec.
TreeMap[f,tree,levelspecelems]
applies f to the elements elems of subtrees on levels specified by levelspec.
Details and Options
- TreeMap allows a function to be applied to elements of subtrees on any range of levels in a Tree object. The function can be applied to the subtrees in many orders, including depth-first and breadth-first traversals.
- Structural elements elem for levelspecelem include:
-
"Data" the data of the subtree "Children" the children of the subtree "Subtree" the subtree itself "ChildrenData" the data of the children - Additional elements include:
-
"OriginalData" the original data of the subtree "OriginalChildren" the original children of the subtree "OriginalSubtree" the original subtree "OriginalChildrenData" the original data of the children "Position" the position of the subtree "Index" the index of the subtree in the list of siblings "LevelPair" the non-negative and negative levels of the subtree "Level" the non-negative level of the subtree from the root "NegativeLevel" the negative level of the subtree from the leaves - TreeMap uses standard level specifications as in TreeLevel:
-
n levels 1 through n Infinity levels 1 through Infinity {n} level n only {n1,n2} levels n1 through n2 All levels 0 through Infinity "Leaves" level -1 only "NonLeaves" levels 0 through -2 - The default value for levelspec in TreeMap is {0,Infinity}.
- TreeMap traverses subtrees in a left-to-right, depth-first order, with children visited before their parents.
- TreeMap has the same options as Tree, with the following addition:
-
TreeTraversalOrder Automatic visit subtrees in different orders, such as depth-first and breadth-first traversals - TreeMap[f][tree] is equivalent to TreeMap[f,tree].
Examples
open allclose allBasic Examples (5)
Map f on the specified levels:
Map f at the subtrees of a tree:
Supply the position as an additional argument:
Use the operator form of TreeMap:
Scope (12)
Level Specifications (5)
Elements (7)
Map at the data of the children:
Map at the original data of the children:
Supply the position as an additional argument:
Supply the index rather than the position:
Supply the level specifications as an additional argument:
Supply the level rather than both level specifications:
Supply the negative level rather than both level specifications:
Options (3)
TreeTraversalOrder (3)
By default, subtrees are visited in a depth-first order, with parents visited after their children:
Specify a top-down, right-to-left variant:
Visit subtrees in a breadth-first order, with nodes on the same level from the root visited before the nodes on the next level:
Visit 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 (6)
Children are visited before their parents:
TreeScan does the same as TreeMap but without returning a result:
TreeMap[f,tree,levelspec] is equivalent to TreeMapAt[f,tree,TreeLevel[levelspec]]:
Construct a tree from the heads in an expression:
TreeMap maps on the data of subtrees in a tree:
This corresponds to mapping on the heads and leaves in an expression:
Map can map on the heads and leaves directly:
Construct a tree from the atoms in an expression:
TreeMap can map on the data of just the leaves in a tree:
This corresponds to mapping on the atoms in an expression:
Map can map on the atoms in an expression directly:
TreeFold applies a function to the data and results for the children:
TreeMap can compute the same result:
The new data of the root is the result of TreeFold:
Possible Issues (1)
TreeMap by default starts at level 1, so does not apply the function to the whole tree:
Text
Wolfram Research (2021), TreeMap, Wolfram Language function, https://reference.wolfram.com/language/ref/TreeMap.html (updated 2024).
CMS
Wolfram Language. 2021. "TreeMap." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/TreeMap.html.
APA
Wolfram Language. (2021). TreeMap. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeMap.html