Mise en œuvre de DFS pour les graphes
Dans cet exercice, vous mettrez en œuvre un algorithme de recherche en profondeur pour parcourir un graphe.
Rappelez les étapes :
Commencez à n'importe quel sommet
Ajouter le sommet à la liste des sommets visités
Pour chaque sommet adjacent du nœud actuel
S'il a été visité -> l'ignorer
S'il n'a pas été visité -> effectuer récursivement DFS
Pour vous aider à tester votre code, le graphique suivant a été chargé à l'aide d'un dictionnaire.
graph = {
'0' : ['1','2'],
'1' : ['0', '2', '3'],
'2' : ['0', '1', '4'],
'3' : ['1', '4'],
'4' : ['2', '3']
}
Cet exercice fait partie du cours
Structures de données et algorithmes en Python
Instructions
- Vérifiez si
current_vertex
n'a pas encore été visité. - Ajoutez
current_vertex
àvisited_vertices
. - Appelez
dfs()
de manière récursive en lui transmettant les valeurs appropriées.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def dfs(visited_vertices, graph, current_vertex):
# Check if current_vertex hasn't been visited yet
if current_vertex not in ____:
print(current_vertex)
# Add current_vertex to visited_vertices
____.add(____)
for adjacent_vertex in graph[current_vertex]:
# Call recursively with the appropriate values
____(____, ____, ____)
dfs(set(), graph, '0')