TreeScan
TreeScan[f,tree]
依次计算应用于 tree 的每个子树数据的 f.
TreeScan[f,tree,levelspec]
将 f 应用于 levelspec 指定的 tree 层级上的子树数据.
TreeScan[f,tree,levelspecelems]
将 f 应用于由 levelspec 指定的层级上的子树的元素 elems.
更多信息和选项
- 扫描一棵树也被称为树的遍历或树的搜索. 可以按多种不同的顺序访问子树,包括深度优先和广度优先遍历.
- 扫描树通常用于在子树上执行具有“副作用”的操作,例如进行赋值.
- TreeScan 允许将函数应用于 Tree 对象中任意层级范围上的子树的元素.
- TreeScan[f,tree] 丢弃对 tree 的数据应用 f 的结果. 与 TreeMap 不同,TreeScan 不会构建一个新树并返回.
- 可用 Throw 从 TreeScan 中退出.
- levelspecelem 的结构元素 elem 包括:
-
"Data" 子树的数据 "Children" 子树的孩子 "Subtree" 子树自身 "ChildrenData" 孩子的数据 - 其他元素包括:
-
"OriginalData" 子树的原始数据 "OriginalChildren" 子树的原始孩子 "OriginalSubtree" 原始子树 "OriginalChildrenData" 孩子的原始数据 "Position" 子树的位置 "Index" 兄弟列表中子树的索引 "LevelPair" 子树的非负和负层级 "Level" 从根开始的子树非负层级 "NegativeLevel" 从叶子开始的子树负层级 - TreeScan 使用 TreeLevel 中的标准层级规范:
-
n 层 1 到 n Infinity 层 1 到 Infinity {n} 仅层 n {n1,n2} 层 n1 到 n2 All 层 0 到 Infinity "Leaves" 仅层 -1 "NonLeaves" 层 0 到 -2 - TreeScan 中 levelspec 的默认值为 {0,Infinity}.
- TreeScan 以从左到右、深度优先的顺序遍历子树,访问父母之前先访问孩子.
- TreeScan[…,TreeTraversalOrderorder] 允许以不同的顺序访问子树,如深度优先和广度优先的遍历.
- TreeScan[f][tree] 等价于 TreeScan[f,tree].
范例
打开所有单元关闭所有单元
Wolfram Research (2021),TreeScan,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeScan.html (更新于 2022 年).
文本
Wolfram Research (2021),TreeScan,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeScan.html (更新于 2022 年).
CMS
Wolfram 语言. 2021. "TreeScan." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/TreeScan.html.
APA
Wolfram 语言. (2021). TreeScan. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TreeScan.html 年