TreeCases
TreeCases[tree,pattern]
给出数据匹配 pattern 的 tree 的子树列表.
TreeCases[tree,pattern,levelspec]
给出 levelspec 指定的层级上 tree 的所有子树的列表,其中数据与模式匹配.
TreeCases[tree,pattern,levelspec,n]
给出数据与模式匹配的 tree 中的前 n 个子树.
更多信息和选项
- TreeCases 列出具有与 Tree 对象中任何级别范围内的任何模式匹配的数据的子树. 匹配列表可以按许多不同的顺序给出,包括深度优先和广度优先遍历.
- TreeCases[tree,pattern] 依次测试 tree 的所有子树,以尝试找到数据匹配 pattern 的子树.
- TreeCases 使用 TreeLevel 中的标准级别规范:
-
n 层 1 至 n All 层 0 至 Infinity Infinity 层 1 至 Infinity {n} 仅层 n {n1,n2} 层 n1 至 n2 - 在 TreeCases 中,levelspec 的默认值为 {0,Infinity}.
- TreeCases 以从左到右、深度优先的顺序遍历子树,子先于父被访问.
- TreeCases[…,TreeTraversalOrderorder] 允许以不同的顺序访问子树,例如深度优先和广度优先遍历.
- TreeCases[pattern][tree] 等价于 TreeCases[tree,pattern].
范例
打开所有单元关闭所有单元基本范例 (4)
范围 (6)
使用 TreeCases 作为树位置规范中的运算符形式:
选项 (3)
属性和关系 (5)
TreeCases 提取由 TreePosition 给出的位置:
TreeCount 给出由 TreeCases 给出的匹配子树的数量:
TreeCases[tree,pattern,Infinity] 等价于 TreeChildren@TreeExtract[tree,TreeCases[pattern]]:
Cases[expr,pattern,levelspec] 等价于 TreeData/@TreeCases[ExpressionTree[expr,"Subexpressions"],pattern,levelspec]:
对于正数层,Cases[expr,pattern,levelspec,HeadsTrue] 等价于 TreeData/@TreeCases[ExpressionTree[expr,"Subexpressions",HeadsTrue],pattern,levelspec]:
可能存在的问题 (1)
TreeCases 默认情况下从第 1 级开始,因此不访问根目录:
文本
Wolfram Research (2021),TreeCases,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeCases.html (更新于 2021 年).
CMS
Wolfram 语言. 2021. "TreeCases." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/TreeCases.html.
APA
Wolfram 语言. (2021). TreeCases. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TreeCases.html 年