Implementación de Python de la ruta de acceso de ancho en gráficos (BFS)

Este artículo sigue el del algoritmo BFS aquí: http://128mots.com/index.php/2020/02/11/parcours-en-largeur-dans-les-graphes-bfs/

La implementación de Python de este algoritmo es la siguiente:

de colecciones importar deque

def bfs (gráfico, vértice):
    cola - deque([vertex])
    distancia ' vértice: 0'
    padre ' vértice: Ninguno'
    mientras que la cola:
    	t - tail.popleft()
    	para vecino en gráfic[t]o:
    		Si el vecino no está a distancia:
    			tail.append (vecino)
    			distanci[voisin]a - distanci[t]a - 1
    			padr[voisin]e 't'
    distancia de retorno, padre


gráfico ajacence #Liste
Gráfico
	'A': ['B','C'],
	'B': ['A','C', 'D'],
	'C': ['D'],
	'D':['C','A']
}

distancia, pere - bfs (gráfico, 'A')
impresión ("Distancias" - str (distancia))
impresión ("Pere" - str (padre))