Предварительные и последующие значения DFS с использованием Python 3,7 - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь реализовать DFS (Поиск в глубину), используя python с использованием рекурсии, и одновременно хочу отслеживать номера до и после каждой вершины в неориентированном графе.

Мы принимаем ввод как Матрица смежности (A) Есть N = len (A) вершин, и они называются 0,1,2 ... N-1.

Вот код:

A = [[0,1,1,1,0,0,0,0,0,0],[1,0,1,0,0,0,0,0,0,0],[1,1,0,0,0,0,0,0,0,0],[1,0,0,0,1,0,0,1,0,0],[0,0,0,1,0,1,1,0,0,0],[0,0,0,0,1,0,1,1,1,0],[0,0,0,0,1,1,0,0,0,0],[0,0,0,1,0,1,0,0,1,0],[0,0,0,0,0,1,0,1,0,1],[0,0,0,0,0,0,0,0,1,0]]

N = len(A)

visited = [0]*N
parent = [-1]*N
pre = [0]*N
post = [0]*N
count = 0

def DFS(i):
    visited[i]=1
    pre[i] = count
    count = count + 1

    for j in range(len(A)):
        if A[i][j] == 1 and visited[j] == 0 :
            parent[j] = i
            DFS(j)
            post[i] = count
            count = count + 1

Теперь проблема, когда я запускаю это, я получаю следующую ошибку -

>>> DFS(0)
UnboundLocalError: local variable 'count' referenced before assignment

Может кто-нибудь предложить, пожалуйста, что изменить, чтобы я мог успешно рассчитать до и после значения каждой вершины в соответствующих списках без изменения основной код много. Пожалуйста, попробуйте предложить решения как можно более простыми.

Этот код написан в Python 3.7 в Windows 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...