mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-07 10:50:36 +00:00
add comments
This commit is contained in:
@@ -70,15 +70,15 @@ def construire_chemins(graphe, depart):
|
||||
:effet de bord: Aucun
|
||||
"""
|
||||
resultat = dict()
|
||||
file = [depart]
|
||||
resultat[depart] = (0, None)
|
||||
file = [depart] # initialise une file (sous forme de liste ici)
|
||||
resultat[depart] = (0, None) # None car le depart n'a aucun predesseceur
|
||||
while len(file) > 0:
|
||||
sommet = file.pop(0)
|
||||
for voisin in graphe.voisins[sommet]:
|
||||
if voisin not in resultat:
|
||||
distance = resultat[sommet][0] + 1
|
||||
resultat[voisin] = (distance, sommet)
|
||||
file.append(voisin)
|
||||
sommet = file.pop(0) # retire le premier element de la file -> FIFO
|
||||
for voisin in graphe.voisins[sommet]: # Parcours tous les voisins du sommet
|
||||
if voisin not in resultat: # Verifie que cette partie de l arbre (ou du graphe) n a pas deja ete explorer
|
||||
distance = resultat[sommet][0] + 1 # Definie distance -> Distance du dernier sommet + 1
|
||||
resultat[voisin] = (distance, sommet) # Insere le nouveau sommet dans le dictionnaire
|
||||
file.append(voisin) # Permet la reiteration de la boucle a partir de se sommet
|
||||
|
||||
return resultat
|
||||
|
||||
@@ -94,15 +94,15 @@ def reconstruire_chemin_vers(dico_chemins, *arrivee):
|
||||
:return resultat list: liste des chemins ie des listes de sommets traversés
|
||||
"""
|
||||
chemins = list()
|
||||
cibles = arrivee
|
||||
cibles = arrivee # Creer une liste avec les sommets a remonter
|
||||
if len(cibles) == 0:
|
||||
return list(dico_chemins.keys())
|
||||
return list(dico_chemins.keys()) # si la liste est vide, on renvoie les chemins (sans leurs attributs)
|
||||
for sommet in cibles:
|
||||
sous_chemin = []
|
||||
current = sommet
|
||||
while current is not None:
|
||||
sous_chemin.insert(0, current)
|
||||
current = dico_chemins[current][1]
|
||||
sous_chemin.insert(0, current) # on insere le sommet au début de la liste (permet de maintenir l ordre)
|
||||
current = dico_chemins[current][1] # on change current avec le sommet predesseceur pour que la boucle continue
|
||||
chemins.append(sous_chemin)
|
||||
return chemins
|
||||
|
||||
|
||||
Reference in New Issue
Block a user