📅  最后修改于: 2023-12-03 15:30:50.095000             🧑  作者: Mango
La fonction de parcours en largeur (ou BFS) est une technique de traversée de graphe qui explore tous les voisins d'un nœud avant de passer au nœud suivant. Cette approche est souvent utilisée pour trouver le chemin le plus court entre deux nœuds d'un graphe non-pondéré.
Voici un exemple d'implémentation en Python de la fonction de parcours en largeur :
from collections import deque
def bfs(graph, start):
# Créer une file vide et ajouter le nœud de départ
queue = deque([start])
# Créer un ensemble pour stocker les nœuds visités
visited = set()
while queue:
# Retirer le premier nœud de la file
node = queue.popleft()
if node not in visited:
# Marquer le nœud comme visité
visited.add(node)
# Ajouter ses voisins à la file
queue.extend(graph[node])
return visited
Cette fonction utilise une file pour stocker les nœuds à explorer et un ensemble pour stocker les nœuds visités. Elle prend en paramètre un graphe sous la forme d'un dictionnaire dont les clés sont les nœuds et les valeurs sont une liste de voisins.
Voici un exemple d'utilisation de la fonction :
# Créer un graphe non-pondéré
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
# Appeler la fonction de parcours en largeur
print(bfs(graph, 'A')) # {'A', 'B', 'C', 'D', 'E', 'F'}
Dans cet exemple, la fonction de parcours en largeur est appelée sur le graphe non-pondéré défini par le dictionnaire graph
. Le nœud de départ est 'A'
et la fonction retourne un ensemble contenant tous les nœuds visités.
En conclusion, la fonction de parcours en largeur est une technique utile pour explorer un graphe et trouver le chemin le plus court entre deux nœuds. Elle est facile à implémenter en Python et peut être adaptée à différents types de graphe.