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