【发布时间】:2020-01-27 06:03:03
【问题描述】:
我正在尝试一次遍历一个节点。
每个节点可以有2-3条路径
在有 3 条路径的节点上,其中一条路径始终为终点,一条有时为终点
我们不能倒退,但可以重新开始
我们可用的功能是
getCurrentNode() #returns string of current node's path from start (ex. 'A-B-A-A-B')
getCurrentNodePaths() #returns number of possible paths from this node
startOver() #puts us back at node 0
takePath(int pathNumber) #traverse the decision tree down a desired path
我已经编写了这个伪代码,它应该递归遍历每个节点,但仅限于“最左边”的路径
# Start
def walk(pathNumber):
takePath(pathNumber)
next_nodes_paths = getCurrentNodePaths()
if next_nodes_paths.length > 0:
walk(0)
startOver()
walk(0)
我怎样才能让它跟踪它的位置、重新开始并采取新的路径
【问题讨论】:
-
你可以给
walk添加参数吗? -
startOver()是否也会重置getCurrentNode()的值? -
@CalebGoodman 是的,请对
walk进行任何更改。是的,startOver()重置了getCurrentNode()的值 -
你能有一个全局变量来存储所有检查的路径吗?喜欢从
getCurrentNode()添加每个路径,然后检查它是否已经在? -
您可以使用
networkx之类的东西来完成这项工作吗?这样就很容易了。
标签: python functional-programming tree decision-tree