TreeMap
詳細とオプション
- TreeMap を使うと,Treeオブジェクトの任意のレベル範囲の部分木の要素に関数を適用することができる.関数は,深さ優先探索や幅優先探索を含む異なる順序で部分木に適用することができる.
- levelspecelemの構造化要素 elem には以下が含まれる.
- 次は,その他の要素である.
-
"OriginalChildren" 部分木のもとからの子 "OriginalSubtree" もとからの部分木 "OriginalChildrenData" 子のもとからのデータ "Position" 部分木の位置 "Index" 兄弟のリストの中の部分木の指標 "LevelPair" 部分木の非負の葉と負の葉 "Level" 部分木の根から非負のレベル "NegativeLevel" 部分木の葉から負のレベル - TreeMapはTreeLevelにおけるのと同じように標準的なレベル指定を使う.
-
n レベル1からレベル n まで Infinity レベル1からInfinityまで {n} レベル n のみ {n1,n2} レベル n1からレベル n2まで All レベル0からInfinityまで "Leaves" レベル-1のみ "NonLeaves" レベル0 からレベル-2まで - TreeMapの levelspec のデフォルト値は{0,Infinity}である.
- TreeMapは,左から右で深さ優先順に,親の前に子を訪れる形で部分木を横断する.
- TreeMapには,Treeと同じオプションに以下を加えたものが使える.
-
TreeTraversalOrder Automatic 深さ優先横断や幅優先横断のように,異なる順序で部分木を訪れる - TreeMap[f][tree]はTreeMap[f,tree]に等しい.
例題
すべて開く すべて閉じる例 (5)
TreeMap[f, [image]]TreeMap[f, [image], {1, 2}]TreeMap[f @* TreeRules, [image], All -> "Subtree"]TreeMap[f, [image], All -> {"Data", "Position"}]TreeMapを演算子形を使う:
TreeMap[f][[image]]スコープ (12)
レベル指定 (5)
tree = [image];TreeMap[f, tree, All]TreeMap[f, tree, 2]TreeMap[f, tree, {2}]TreeMap[f, tree, {0, 2}]TreeMap[f, [image], Infinity]TreeMap[f, [image], {0, Infinity}]tree = [image];TreeMap[f, tree, -1]TreeMap[f, tree, -2]TreeMap[f, tree, {-2}]TreeMap[f, [image], {1, -1}]TreeMap[f, [image], "Leaves"]TreeMap[f, [image], "NonLeaves"]要素 (7)
TreeMap[f, [image], All -> "Data"]TreeMap[f @* TreeRules, [image], All -> "Subtree"]TreeMap[f @* TreeRules, [image], All -> "OriginalSubtree"]TreeMap[f, [image], All -> "Children"]TreeMap[f, [image], All -> "OriginalChildren"]TreeMap[f, [image], All -> "ChildrenData"]TreeMap[f, [image], All -> "OriginalChildrenData"]TreeMap[f, [image], All -> {"Data", "Position"}]TreeMap[f, [image], All -> {"Data", "Index"}]TreeMap[f, [image], All -> {"Data", "LevelPair"}]TreeMap[f, [image], All -> {"Data", "Level"}]TreeMap[f, [image], All -> {"Data", "NegativeLevel"}]TreeMap[f, [image], All -> {"Data", "Position", "LevelPair"}]オプション (3)
TreeTraversalOrder (3)
デフォルトで,部分木は深さ優先順で訪れられ,親は子の後に訪れられる:
n = 1;
TreeMap[n++&, [image], TreeTraversalOrder -> "DepthFirst"]n = 1;
TreeMap[n++&, [image], TreeTraversalOrder -> {"DepthFirst", "TopDown", "LeftRight"}]部分木を幅優先順に訪れる.根から同じレベルにあるノードは次のレベルのノードよりも先に訪れられる:
n = 1;
TreeMap[n++&, [image], TreeTraversalOrder -> "BreadthFirst"]部分木を葉優先順に訪れる.葉から同じレベルにあるノードは次のレベルのノードよりも先に訪れられる:
n = 1;
TreeMap[n++&, [image], TreeTraversalOrder -> "LeavesFirst"]特性と関係 (6)
TreeMap[Echo, [image]]TreeScanはTreeMapと同じように働くが,結果は返さない:
TreeScan[Echo @* f, [image]]TreeMap[Echo @* f, [image]]TreeMap[f,tree,levelspec]はTreeMapAt[f,tree,TreeLevel[levelspec]]に等しい:
TreeMap[f, [image], {1, 2}] === TreeMapAt[f, [image], TreeLevel[{1, 2}]]ExpressionTree[1[2[3, 4], 5[6, 7]], "Heads"]TreeMapは木の部分木のデータにマッピングする:
TreeMap[f, %, All]TreeExpression[%, "Heads"]Mapは頭部と葉に直接マッピングできる:
mapAtData[f_][head_[args___]] := f[head][args]
mapAtData[f_][expr_] := f[expr]Map[mapAtData[f], 1[2[3, 4], 5[6, 7]], All]ExpressionTree[1[2, 3][4[5, 6], 7[8, 9]], "Atoms", Heads -> True]TreeMapは木の葉だけのデータにマッピングできる:
TreeMap[f, %, {-1}]TreeExpression[%, "Atoms", Heads -> True]Mapは式の原子に直接マッピングする:
% === Map[f, 1[2, 3][4[5, 6], 7[8, 9]], {-1}, Heads -> True]TreeFoldは子のデータと結果に関数を適用する:
TreeFold[f, [image]]TreeMapも同じ結果が計算できる:
TreeMap[f, [image], "NonLeaves" -> {"Data", "ChildrenData"}]根の新たなデータはTreeFoldの結果である:
TreeData[%]考えられる問題 (1)
TreeMapは,デフォルトで,レベル1から始めるので,関数を木全体には適用しない:
TreeMap[f, [image], -1]TreeMap[f, [image], {0, -1}]テキスト
Wolfram Research (2021), TreeMap, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeMap.html (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
BibTeX
@misc{reference.wolfram_2026_treemap, author="Wolfram Research", title="{TreeMap}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/TreeMap.html}", note=[Accessed: 12-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_treemap, organization={Wolfram Research}, title={TreeMap}, year={2024}, url={https://reference.wolfram.com/language/ref/TreeMap.html}, note=[Accessed: 12-July-2026]}