我在应用数学中有一个问题,几乎可以完美地映射到在多路树中找到最长的路径。
我有一个函数 child() 给出子节点(空间中的点满足条件)。唯一需要注意的是 child() 需要连接到它的所有先前节点,包括根节点。正是在这里,我正在努力递归地编写我的代码。到目前为止,我有类似下面的东西。
def multitree(node):
tmp_list = child(node)
for child2 in tmp_list:
if len(child(child2)))==0: #if you hit a leaf (dead end), go to next element
continue
else:
multitree(child2)
但在这一点上,我不确定要返回什么。我基本上想映射整个多路树,直到我找到所有东西的叶子。有什么想法或提示吗?多谢你们。
编辑:
更新 1:为了完整起见,我勾勒出输入 child() 需要什么的粗略概念:https ://i.imgur.com/3MkfsYc.png基本上是为了找到箭头 child() 标记的节点的子节点需要根节点和节点本身之间的节点列表,即用红点标记的节点。
更新 2:
我已经写了 child(node) 如下,我目前正在处理它——
def pathwalk(node):
children = child(node)
paths = [child(node.append(kid)) for kid in children]
return paths