递归搜索networkx图

时间:2010-11-11 21:03:37

标签: python recursion networkx

关于递归的问题(以及切向图形库网络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,但它似乎并不特别相关?)

谢谢!

1 个答案:

答案 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)