TreeFold

TreeFold[f,tree]

连续折叠 tree 的子树,将 f 应用于每个子树的数据及其孩子节点的结果列表.

TreeFold[f,tree,h]

f 应用于 h[tree] 而非 tree 的数据.

TreeFold[{f,f-1},tree,h]

在最后一层应用 f-1 并在每个内部层应用 f.

TreeFold[f]

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

更多信息

  • TreeFold 根据 Tree 对象构造一个表达式,使用二元运算 f 从下向上折叠其子树:
  • TreeFold 可用于将树的数据或子树累积或减少为单个值.
  • TreeFold 以深度优先的顺序折叠子树,在折叠双亲节点之前折叠孩子节点: »
  • TreeFold[f,tree,h] 中,h[tree] 用作 f 而非 TreeData[tree] 的第一个参数. »
  • tree 为叶则 TreeFold[{,f-1},tree,h] 给出 f-1[h[tree]]. »
  • TreeFold[f,Tree[data,<|key1tree1,key2tree2,|>]] 给出 f[data,<|key1res1,key2res2,|>],其中 resiTreeFold[f,treei] 的结果. »
  • TreeFold[f][tree] 等价于 TreeFold[f,tree]. »
  • TreeFold[f][tree,h] 等价于 TreeFold[f,tree,h]. »

范例

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

基本范例  (4)

用二元函数 f 折叠一棵树:

在对叶子中的数据应用函数 g 后,用二元函数 f 折叠一棵树:

将树可视化为下标数据,突出显示叶子,并在内部子树周围添加边框:

折叠一棵树,用关联指定孩子:

范围  (9)

折叠一个叶子:

折叠内部叶:

折叠有孩子节点的树图:

折叠具有多个层级的树:

将运算符应用于叶子:

折叠子树的属性:

折叠一棵树,用关联指定孩子:

对一个参数使用 TreeFold 的运算符形式:

对两个参数使用 TreeFold 的运算符形式:

应用  (11)

将固体区域和运算组成的树转换为 CSGRegion

获取树的叶子的嵌套列表:

从表达式的原子构造一棵树:

将此树转换为嵌套列表:

对一棵树的叶子中的数据汇总:

对树的数据汇总:

创建一个线性递归的项的树:

计算线性递归的项:

将树转换为 TextElement

使用带有此函数的 TreeFold 计算树中叶子的最小层:

将树显示为网格:

获取人口超过 100,000 的美国城市列表:

构建一个图表,根据城市的大地位置给出城市的层次聚类:

将聚类层次结构从 Graph 对象转换为 Tree 对象:

对于每片叶子,从层次聚类图中的索引中获取城市的大地坐标:

对于代表聚类的每个子树,给出包含其孩子空间中位数的树图:

通过使用每个叶子的城市位置和每个聚类位置的空间中位数来获得大地位置的树图:

在美国地图上显示该大地坐标树图的边:

创建家谱:

创建一个给出出生日期的关联关系:

定义一个比较两人的函数,给出第一个孩子出生时年纪更小的人、出生的孩子及孩子出生时他们的年龄:

定义一个比较两位兄弟姐妹的函数,除了给出较年长的兄姐及其出生日期外,还给出了其后代中首次做父母时年龄最小的后代:

定义一个函数,根据一个人后代中孩子的结果,给出其后代中首次做父母时年龄最小的后代:

找到树图中首次做父母时年龄最小的人、其第一个孩子及孩子出生时他们的年龄:

属性和关系  (14)

Fold 给出将二元运算符 f 连续应用于列表元素的结果:

TreeFold 给出连续将二元运算符 f 应用于树图数据的结果:

TreeFold 将运算符 f 应用于每个孩子的结果列表:

TreeFold[f,Tree[data,None]] 给出 data

TreeFold[{f,f-1},Tree[data,None]] 改为将运算符 f-1 应用于 data

TreeFold[f,Tree[data,{}]] 给出 f[data,{}]

即使树图没有孩子也是如此:

TreeFold[f,tree,h] 给出将 f 应用于 h[tree] 及孩子 treei 的结果列表 TreeFold[f,treei,h] 的结果:

TreeFold[f,tree] 等价于 TreeFold[{f,Identity},tree]

TreeFold[{Tree,Tree[#,None]&},tree] 等价于 tree

TreeFold 将函数应用于孩子的数据和结果:

TreeMap 可进行同样的计算:

根的新数据是 TreeFold 的结果:

从表达式的头部构造一棵树:

使用 TreeFold 在每个子树上方插入一个父节点:

这对应于表达式中参数的映射:

Map 默认情况下映射表达式中的参数:

从表达式中的原子构造一棵树:

使用 TreeFold 在每个子树之前插入一个兄弟节点:

这对应于在表达式的子表达式上的映射:

Map 通过 HeadsTrue 映射表达式中的子表达式:

TreeFold[{f,f-1},tree] 等价于 TreeFold[f,TreeMap[f-1,tree,{-1}]]

首先将运算符 f-1 映射到树的叶子上:

然后对内部子树使用运算符 f 折叠树:

TreeFold 可用于计算树的最大层级:

TreeFold 可用于计算树的大小:

TreeFold 可用于将树转换为嵌套规则:

TreeFold 可用于从树的叶子创建表达式:

巧妙范例  (2)

构造一棵树,其层级给出第 0 到第 3 步的谢尔宾斯基三角形:

从这棵树获得第 3 步谢尔宾斯基三角形:

构造一棵树,其层级给出第 0 到第 3 步康托尔集的区间:

从这棵树获得第 3 步康托尔集:

Wolfram Research (2021),TreeFold,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeFold.html (更新于 2022 年).

文本

Wolfram Research (2021),TreeFold,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeFold.html (更新于 2022 年).

CMS

Wolfram 语言. 2021. "TreeFold." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/TreeFold.html.

APA

Wolfram 语言. (2021). TreeFold. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TreeFold.html 年

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_treefold, organization={Wolfram Research}, title={TreeFold}, year={2022}, url={https://reference.wolfram.com/language/ref/TreeFold.html}, note=[Accessed: 17-November-2024 ]}