查找节点邻居的邻居 - Python

时间:2017-09-18 07:26:34

标签: python-3.x networkx

以下是我用来查找绿色节点的邻居的图表。 绿色节点位于名为new = [12,13,14,15,16,17,18,19,20,21,22,23,24,25]的不同集合中。 当我访问第一个绿色节点12;它有两个邻居1521。但21有另一个绿色邻居,因此我需要它们在我的节点12的邻居列表中。重复,直到绿色节点遇到红色节点。最终,节点12的邻居集应该是[0,15,21,14,16,134,23,19,3]。有人可以帮我找到这个吗?

1 个答案:

答案 0 :(得分:1)

伪代码,因为您根本没有指定图表的工作方式:

def findNeighbors (node, greens, visited = None):
    if visited is None:
        visited = set()

    for n in node.directNeighbors:
        # visit node if it’s new
        if n not in visited:
            visited.add(n)

            # go recursively if the new node is green
            if n in greens:
                findNeighbors(n, greens, visited)

    return visited

greenNodes = set(new)
twelve = findNodeByValue(12)
result = findNeighbors(twelve, greenNodes)