Рекурсивный поиск графа networkx - PullRequest
2 голосов
/ 12 ноября 2010

Вопрос о рекурсии (и по касательной к графической библиотеке networkx): у меня есть ориентированный граф с узлом, у которого есть ребра, у которых есть атрибут ["значение"], который может быть 0 или 1 (фактически, вес ребра).

Я хочу иметь возможность рекурсивно проверять соседа узла, пока узел соседа не выйдет из строя через определенный порог.Например:

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.Могу ли я получить помощь?(Я посмотрел на этот другой пост , но он не показался мне особенно актуальным?)

Спасибо!

1 Ответ

3 голосов
/ 12 ноября 2010

отказать: я ничего не знаю о 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)
...