Tree 为“寻找一个词”;“压平一棵树”;
我想知道是否有一个现有的词来描述我目前正在使用的流程。我想称之为“压平一棵树”,但我觉得一定有更好的词或短语 输入:Tree 为“寻找一个词”;“压平一棵树”;,tree,Tree,我想知道是否有一个现有的词来描述我目前正在使用的流程。我想称之为“压平一棵树”,但我觉得一定有更好的词或短语 输入: |--D --B | |--C | A-E | | |--G --F |--H 输出: [ [A, B, D] [A, B, C] [A, E] [A, F, G] [A, F, H] ] 这个过程有一个确定的名称吗?您需要一个深度优先搜索来捕获从根到叶的每条路径 伪代码: global allPaths = [] R = root currentPa
|--D
--B
| |--C
|
A-E
|
| |--G
--F
|--H
输出:
[ [A, B, D]
[A, B, C]
[A, E]
[A, F, G]
[A, F, H] ]
这个过程有一个确定的名称吗?您需要一个深度优先搜索来捕获从根到叶的每条路径 伪代码:
global allPaths = []
R = root
currentPath = []
findPaths(R, currentPath)
findPaths(R, currentPath){
if R has no children,
allPaths.add( currentPath )
else
for each child C in R:
findPaths(C, currentPath + R)
}
我认为您只是在遍历树,同时保留到当前节点的路径。访问叶时,打印叶的完整路径
我认为没有具体的名称,但它与非常简单的遍历没有太大区别。根据情况,水合(或脱水)怎么样?似乎是最好的。因为事实上,如果你注意到你的新结构,你就有多余的数据,它看起来会直接映射到概念上的想法。那么“链锯”路径枚举呢 DFS遍历 还是我最喜欢的
树木排列 我认为它是树的一部分。是的,它被称为序列化如果输入是树,输出是引用的列表列表,那么您实际上不是在为流程寻找短语,而是在为您调用的子例程寻找名称。这样一个子例程的名称应该是它返回内容的描述
如何
RootPathsOfLeaves
?或者对其进行一些重新排列…我刚刚看到一篇关于“”的wiki文章,它使用的术语是“路径压缩”
摘录:
。。。
第二个改进称为path
压缩,是压扁的一种方式
树的结构
在上面使用Find。这个想法是
在访问根目录的过程中访问的每个节点
节点也可以直接连接
到根节点;他们都有共同的爱好
同一位代表。为此,,
当Find递归地向上遍历
树,它会更改每个节点的父节点
引用指向它所属的根
建立生成的树非常复杂
拉平,加快未来运营
不仅在这些元素上,而且在
直接或间接引用它们的
间接地
是的,但是对于返回路径数组的函数是否有一个词?很可能没有。你正在“找到通向树叶的所有道路”。我想你一个字也说不出来。它不是路径列表。它是根onlyRootedpathlist中的路径列表。我可以整天都这样做。:)我不确定教科书是否会列出这一点,但对于实际提交的“名称”来说+1:-)它看起来确实像是所有路径的枚举,因此“路径枚举”似乎是合适的。+1-语言对于表达想法很重要,值得一试。