TreePosition[tree,pattern]
给出数据与 pattern 匹配的 tree 的子树的位置列表.
TreePosition[tree,pattern,levelspec]
只给出 tree 的在 levelspec 指定的层上出现的匹配.
TreePosition[tree,pattern,levelspec,n]
给出找到的前 n 个匹配的位置.
TreePosition[pattern]
表示 TreePosition 的算符形式,可将其应用于树.
TreePosition
TreePosition[tree,pattern]
给出数据与 pattern 匹配的 tree 的子树的位置列表.
TreePosition[tree,pattern,levelspec]
只给出 tree 的在 levelspec 指定的层上出现的匹配.
TreePosition[tree,pattern,levelspec,n]
给出找到的前 n 个匹配的位置.
TreePosition[pattern]
表示 TreePosition 的算符形式,可将其应用于树.
更多信息和选项
- TreePosition 列出与 Tree 对象中任何层级范围内任何模式匹配的数据的位置. 匹配位置的列表可以以许多不同的顺序给出,包括深度优先和广度优先遍历.
- TreePosition[tree,pattern] 依次测试 tree 的所有子树,试图找出数据与 pattern 匹配的子树.
- TreePosition 以适合在 TreeExtract、TreeReplacePart 和 TreeDelete 中使用的形式返回位置列表.
- TreePosition 返回的部分指定 {} 表示整个 tree.
- TreePosition 使用 TreeLevel 中的标准层级规范:
-
n 层 1 至 n All 层 0 至 Infinity Infinity 层 1 至 Infinity {n} 只有 n 层 {n1,n2} 层 n1 至 n2 - TreePosition 中 levelspec 的默认值为{0,Infinity}.
- TreePosition 以从左到右、深度优先的顺序遍历子树,生成按字典顺序排列的索引列表.
- TreePosition[…,TreeTraversalOrderorder] 允许以不同的顺序访问子树,例如深度优先和广度优先遍历.
- TreePosition[pattern][tree] 等价于 TreePosition[tree,pattern].
范例
打开所有单元 关闭所有单元基本范例 (4)
TreePosition[[image], _ ? EvenQ]TreePosition[[image], _ ? EvenQ, {0, -2}]TreePosition[[image], _ ? PrimeQ, All, 3]使用 TreePosition 的运算符形式:
TreePosition[9][[image]]范围 (5)
TreePosition[[image], _ ? OddQ]TreePosition[[image], _ ? OddQ, 2]TreePosition[[image], _ ? OddQ, {-1}]TreePosition[[image], _ ? OddQ, {0, -2}]TreePosition[[image], _ ? OddQ, All, 4]选项 (3)
TreeTraversalOrder (3)
默认情况下,子树以深度优先顺序访问,父节点在子节点之后访问:
TreePosition[[image], _, TreeTraversalOrder -> "DepthFirst"]TreePosition[[image], _, TreeTraversalOrder -> {"DepthFirst", "TopDown"}]LexicographicSort[%]以广度优先顺序访问子树,从根开始同一级别的节点在下一级的节点之前被访问:
TreePosition[[image], _, TreeTraversalOrder -> "BreadthFirst"]Sort[%]以叶子优先顺序访问子树,与叶子相同级别的节点在下一级节点之前被访问:
TreePosition[[image], _, TreeTraversalOrder -> "LeavesFirst"]属性和关系 (4)
TreeCases 提取由 TreePosition 给出的位置:
tree = [image];TreeCases[tree, _ ? PrimeQ]TreePosition[tree, _ ? PrimeQ]TreeExtract[tree, %]TreeCount 给出由 TreePosition 给出的匹配位置数:
TreePosition[[image], x]TreeCount[[image], x]Position[expr,pattern,levelspec,HeadsFalse] 等价于 TreePosition[ExpressionTree[expr,"Subexpressions"],pattern,levelspec]:
Position[{{1, 4, a, 0}, {b, 3, 2, 2}, {c, c, 5, 5}}, _, All, Heads -> False]ExpressionTree[{{1, 4, a, 0}, {b, 3, 2, 2}, {c, c, 5, 5}}, "Subexpressions"]TreePosition[%, _, All]对于正的层,Position[expr,pattern,levelspec] 等价于 TreePosition[ExpressionTree[expr,"Subexpressions",HeadsTrue],pattern,levelspec]-1:
Position[{1, 2, f[a, b]}, _, {0, Infinity}]ExpressionTree[{1, 2, f[a, b]}, "Subexpressions", Heads -> True]TreePosition[%, _, {0, Infinity}]% - 1可能存在的问题 (1)
TreePosition 默认情况下从层 1 开始,因此不访问根:
TreePosition[[image], _, 1]TreePosition[[image], _, {0, 1}]文本
Wolfram Research (2021),TreePosition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreePosition.html (更新于 2021 年).
CMS
Wolfram 语言. 2021. "TreePosition." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/TreePosition.html.
APA
Wolfram 语言. (2021). TreePosition. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TreePosition.html 年
BibTeX
@misc{reference.wolfram_2026_treeposition, author="Wolfram Research", title="{TreePosition}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/TreePosition.html}", note=[Accessed: 16-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_treeposition, organization={Wolfram Research}, title={TreePosition}, year={2021}, url={https://reference.wolfram.com/language/ref/TreePosition.html}, note=[Accessed: 16-July-2026]}