TreeCases

TreeCases[tree,pattern]

给出数据匹配 patterntree 的子树列表.

TreeCases[tree,pattern,levelspec]

给出 levelspec 指定的层级上 tree 的所有子树的列表,其中数据与模式匹配.

TreeCases[tree,pattern,levelspec,n]

给出数据与模式匹配的 tree 中的前 n 个子树.

TreeCases[pattern]

表示可应用于树的 TreeCases 的运算符形式.

更多信息和选项

  • TreeCases 列出具有与 Tree 对象中任何级别范围内的任何模式匹配的数据的子树. 匹配列表可以按许多不同的顺序给出,包括深度优先和广度优先遍历.
  • TreeCases[tree,pattern] 依次测试 tree 的所有子树,以尝试找到数据匹配 pattern 的子树.
  • TreeCases 使用 TreeLevel 中的标准级别规范:
  • n1n
    All0Infinity
    Infinity1Infinity
    {n}仅层 n
    {n1,n2}n1n2
  • TreeCases 中,levelspec 的默认值为 {0,Infinity}.
  • TreeCases 以从左到右、深度优先的顺序遍历子树,子先于父被访问.
  • TreeCases[,TreeTraversalOrderorder] 允许以不同的顺序访问子树,例如深度优先和广度优先遍历.
  • TreeCases[pattern][tree] 等价于 TreeCases[tree,pattern].

范例

打开所有单元关闭所有单元

基本范例  (4)

找出数据为偶数的子树:

找出数据为偶数的内部子树:

找出数据为质数的前三个子树:

使用 TreeCases 的运算符形式:

范围  (6)

找出数据为奇数的子树:

找出第 1 和 2 层数据为奇数的子树:

找出数据为奇数的叶子树:

找到数据为奇数的内部子树:

找出数据为奇数的前四个子树:

使用 TreeCases 作为树位置规范中的运算符形式:

选项  (3)

TreeTraversalOrder  (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 年).

文本

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 年

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_treecases, organization={Wolfram Research}, title={TreeCases}, year={2021}, url={https://reference.wolfram.com/language/ref/TreeCases.html}, note=[Accessed: 22-November-2024 ]}