关于递归的问题(以及切向图形库网络x):我有一个带有节点的有向图,其边缘具有可以是0或1的属性[“value”](有效边缘权重)。
我希望能够递归地检查节点的邻居,直到邻居的节点未达到某个阈值。例如:
def checkAll(x):
for neighbor in graph.neighbors(x):
if neighbor is bad:
fail
else:
checkAll(neighbor)
#add all good neighbors here? This isn't working!
我在递归时失败了,基本上,我认为是因为“for”循环的完成方式。我可以得到一些帮助吗? (我查看了this other SO post,但它似乎并不特别相关?)
谢谢!
答案 0 :(得分:3)
免责声明:我对networkx一无所知,但根据我对您的问题的理解,这可能有所帮助:
def examine(node, neighbors_list)
for neighbor in graph.neighbors(node):
if graph[x]["neighbor"]["value"] = 1:
return
else:
neighbors_list.append(neighbor)
examine(neighbor, neighbors_list)
x = parent_node
neighbors = []
examine(x, neighbors)