Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Algorithmes de Parcours de Graphe | Graphes
Aperçu des Algorithmes et des Structures de Données
course content

Contenu du cours

Aperçu des Algorithmes et des Structures de Données

Aperçu des Algorithmes et des Structures de Données

1. Introduction à ADS
2. Liste et Tableau
3. Structures de Données Avancées
4. Graphes

book
Défi : Algorithmes de Parcours de Graphe

Les algorithmes de parcours de graphe sont utilisés pour visiter systématiquement tous les nœuds d'un graphe. Deux algorithmes couramment utilisés pour le parcours de graphe sont la recherche en profondeur (DFS) et la recherche en largeur (BFS).

Algorithme DFS

DFS explore aussi loin que possible le long de chaque branche avant de revenir en arrière. Il utilise une pile pour suivre les nœuds à visiter ensuite. Cela est dû au fait que DFS explore aussi loin que possible le long de chaque branche avant de revenir en arrière, et la pile lui permet de se souvenir du chemin du nœud de départ au nœud actuel, garantissant qu'il peut revenir au nœud précédent et explorer d'autres branches si nécessaire.

  1. Commencez à un sommet et marquez-le comme visité ;
  2. Explorez tous les sommets adjacents non visités de manière récursive ou en utilisant une pile ;
  3. Répétez le processus jusqu'à ce que tous les sommets soient visités.

Algorithme BFS

La recherche en largeur (BFS) explore systématiquement un graphe en visitant tous les nœuds au niveau de profondeur actuel avant de passer aux nœuds au niveau de profondeur suivant. Elle utilise une file d'attente pour gérer l'ordre d'exploration, garantissant que les nœuds sont visités dans l'ordre où ils ont été découverts et permettant d'explorer le graphe couche par couche.

  1. Commencez à un sommet et marquez-le comme visité ;
  2. Enfilez le sommet dans une file d'attente ;
  3. Défilez un sommet de la file d'attente et explorez tous ses sommets adjacents non visités ;
  4. Enfilez ces sommets dans la file d'attente ;
  5. Répétez les étapes 3-4 jusqu'à ce que la file d'attente soit vide.
Tâche

Swipe to start coding

Votre tâche consiste à implémenter les algorithmes BFS et DFS en comblant les lacunes dans les fonctions bfs() et dfs().

Dans la fonction bfs(), nous devons implémenter l'algorithme de recherche en largeur (BFS), qui utilise une file d'attente pour parcourir le graphe. Cela signifie que nous devons défiler le premier élément du tableau de sommets pendant que nous explorons le graphe.

Inversement, dans la fonction dfs(), nous devons implémenter l'algorithme de recherche en profondeur (DFS), qui utilise une pile pour parcourir le graphe. En conséquence, nous devons retirer le dernier élément du tableau de sommets tout en naviguant dans le graphe.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
toggle bottom row

book
Défi : Algorithmes de Parcours de Graphe

Les algorithmes de parcours de graphe sont utilisés pour visiter systématiquement tous les nœuds d'un graphe. Deux algorithmes couramment utilisés pour le parcours de graphe sont la recherche en profondeur (DFS) et la recherche en largeur (BFS).

Algorithme DFS

DFS explore aussi loin que possible le long de chaque branche avant de revenir en arrière. Il utilise une pile pour suivre les nœuds à visiter ensuite. Cela est dû au fait que DFS explore aussi loin que possible le long de chaque branche avant de revenir en arrière, et la pile lui permet de se souvenir du chemin du nœud de départ au nœud actuel, garantissant qu'il peut revenir au nœud précédent et explorer d'autres branches si nécessaire.

  1. Commencez à un sommet et marquez-le comme visité ;
  2. Explorez tous les sommets adjacents non visités de manière récursive ou en utilisant une pile ;
  3. Répétez le processus jusqu'à ce que tous les sommets soient visités.

Algorithme BFS

La recherche en largeur (BFS) explore systématiquement un graphe en visitant tous les nœuds au niveau de profondeur actuel avant de passer aux nœuds au niveau de profondeur suivant. Elle utilise une file d'attente pour gérer l'ordre d'exploration, garantissant que les nœuds sont visités dans l'ordre où ils ont été découverts et permettant d'explorer le graphe couche par couche.

  1. Commencez à un sommet et marquez-le comme visité ;
  2. Enfilez le sommet dans une file d'attente ;
  3. Défilez un sommet de la file d'attente et explorez tous ses sommets adjacents non visités ;
  4. Enfilez ces sommets dans la file d'attente ;
  5. Répétez les étapes 3-4 jusqu'à ce que la file d'attente soit vide.
Tâche

Swipe to start coding

Votre tâche consiste à implémenter les algorithmes BFS et DFS en comblant les lacunes dans les fonctions bfs() et dfs().

Dans la fonction bfs(), nous devons implémenter l'algorithme de recherche en largeur (BFS), qui utilise une file d'attente pour parcourir le graphe. Cela signifie que nous devons défiler le premier élément du tableau de sommets pendant que nous explorons le graphe.

Inversement, dans la fonction dfs(), nous devons implémenter l'algorithme de recherche en profondeur (DFS), qui utilise une pile pour parcourir le graphe. En conséquence, nous devons retirer le dernier élément du tableau de sommets tout en naviguant dans le graphe.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt