TreeLevel
更多信息和选项
- TreeLevel 列出 Tree 对象中任何级别范围内的子树. 子树列表可以以许多不同的顺序给出,包括深度优先和广度优先遍历.
- TreeLevel[tree,levelspec] 给出给定层级的子树列表. 这也可以表示为 TreeLevel[tree,levelspec"Subtree"].
- TreeLevel[tree,levelspec"Data"] 给出给定层级的数据列表.
- TreeLevel 使用标准层级规范:
-
n 1 至 n 层 All 0 层至 Infinity 层 Infinity 1 层至 Infinity 层 {n} 仅层 n {n1,n2} 层 n1 至 n2 "Leaves" -1 层 "NonLeaves" 0 层到 -2 层 - 正数层 n+1 由 tree 的所有子树组成,这些子树是在层 n 的子树的孩子.
- 层 0 对应于树根.
- 层 -1 对应于树叶.
- 负数层 -(n+1) 由所有子树组成,这些子树的孩子位于层 -1、-2、…、-n,其中最高层为 -n.
- TreeLevel 以从左到右、深度优先的顺序遍历子树,子级先于父级访问.
- TreeLevel[…,TreeTraversalOrderorder] 允许以不同的顺序访问子树,例如深度优先和广度优先遍历.
- TreeLevel[levelspec][tree] 等价于 TreeLevel[tree,levelspec].
范例
打开所有单元 关闭所有单元基本范例 (3)
TreeLevel[[image], {2}]TreeLevel[[image], {1, -2} -> "Data"]使用 TreeLevel 的运算符形式:
TreeLevel[{1, 3}][[image]]范围 (8)
层级规范 (7)
TreeLevel[[image], All]tree = [image];TreeLevel[tree, 3]TreeLevel[tree, {3}]TreeLevel[tree, {0, 2}]TreeLevel[[image], Infinity]TreeLevel[[image], {0, Infinity}]tree = [image];TreeLevel[tree, -1]TreeLevel[tree, -2]TreeLevel[tree, {-2}]TreeLevel[[image], {1, -1}]TreeLevel[[image], "Leaves"]TreeLevel[[image], "NonLeaves"]使用 TreeLevel 作为树位置规范中的运算符形式:
TreeExtract[[image], {2, TreeLevel[{1}]}]选项 (3)
TreeTraversalOrder (3)
默认情况下,子树以深度优先的顺序列出,父级在他们的子级之后被访问:
TreeLevel[[image], All, TreeTraversalOrder -> "DepthFirst"]TreeLevel[[image], All, TreeTraversalOrder -> {"DepthFirst", "TopDown", "RightLeft"}]以广度优先顺序列出子树,从根开始同一层级的节点在下一级节点之前被访问:
TreeLevel[[image], All, TreeTraversalOrder -> "BreadthFirst"]以叶优先顺序列出子树,从叶开始同一层级的节点在下一级节点之前被访问:
TreeLevel[[image], All, TreeTraversalOrder -> "LeavesFirst"]应用 (2)
属性和关系 (4)
TreeLevel[tree,levelspec] 等价于 TreeExtract[tree,TreeLevel[levelspec]]:
tree = RandomTree[16]TreeLevel[tree, {2, 4}]% === TreeChildren@TreeExtract[tree, TreeLevel[{2, 4}]]Level[expr,levelspec] 等价于 TreeLevel[ExpressionTree[expr,"Arguments"],levelspec"Data"]:
Level[a[b[c, d[e, f]], g[h]], {0, -2}]ExpressionTree[a[b[c, d[e, f]], g[h]], "Subexpressions"]TreeLevel[%, {0, -2} -> "Data"]Level[expr,levelspec,HeadsTrue] 等价于 TreeLevel[ExpressionTree[expr,"Subexpressions"],levelspec"Data"]:
Level[f[g, h][a, b, c], {1, 2}, Heads -> True]ExpressionTree[f[g, h][a, b, c], "Subexpressions", Heads -> True]TreeLevel[%, {1, 2} -> "Data"]TreeLeaves 给出层 -1 上的子树:
tree = [image];TreeLeaves[tree] === TreeLevel[tree, {-1}]可能存在的问题 (1)
TreeLevel 默认情况下从层 1 开始,因此不提取整个树:
TreeLevel[[image], -1]TreeLevel[[image], {0, -1}]相关指南
-
▪
- 树的属性与度量
文本
Wolfram Research (2021),TreeLevel,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeLevel.html (更新于 2022 年).
CMS
Wolfram 语言. 2021. "TreeLevel." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/TreeLevel.html.
APA
Wolfram 语言. (2021). TreeLevel. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TreeLevel.html 年
BibTeX
@misc{reference.wolfram_2026_treelevel, author="Wolfram Research", title="{TreeLevel}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/TreeLevel.html}", note=[Accessed: 15-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_treelevel, organization={Wolfram Research}, title={TreeLevel}, year={2022}, url={https://reference.wolfram.com/language/ref/TreeLevel.html}, note=[Accessed: 15-November-2026]}