add comments

This commit is contained in:
2025-01-26 17:56:51 +01:00
parent ab5d5f8646
commit adc8880061

View File

@@ -70,15 +70,15 @@ def construire_chemins(graphe, depart):
:effet de bord: Aucun :effet de bord: Aucun
""" """
resultat = dict() resultat = dict()
file = [depart] file = [depart] # initialise une file (sous forme de liste ici)
resultat[depart] = (0, None) resultat[depart] = (0, None) # None car le depart n'a aucun predesseceur
while len(file) > 0: while len(file) > 0:
sommet = file.pop(0) sommet = file.pop(0) # retire le premier element de la file -> FIFO
for voisin in graphe.voisins[sommet]: for voisin in graphe.voisins[sommet]: # Parcours tous les voisins du sommet
if voisin not in resultat: 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 distance = resultat[sommet][0] + 1 # Definie distance -> Distance du dernier sommet + 1
resultat[voisin] = (distance, sommet) resultat[voisin] = (distance, sommet) # Insere le nouveau sommet dans le dictionnaire
file.append(voisin) file.append(voisin) # Permet la reiteration de la boucle a partir de se sommet
return resultat 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 :return resultat list: liste des chemins ie des listes de sommets traversés
""" """
chemins = list() chemins = list()
cibles = arrivee cibles = arrivee # Creer une liste avec les sommets a remonter
if len(cibles) == 0: 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: for sommet in cibles:
sous_chemin = [] sous_chemin = []
current = sommet current = sommet
while current is not None: while current is not None:
sous_chemin.insert(0, current) 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] current = dico_chemins[current][1] # on change current avec le sommet predesseceur pour que la boucle continue
chemins.append(sous_chemin) chemins.append(sous_chemin)
return chemins return chemins