Aller au contenu

BFS et DFS

Parcours de graphes

Exercice Intermédiaire · Graphes · prepa scientifique et economique (CPGE)

Enonce

G = {0:[1,2], 1:[0,3,4], 2:[0,4], 3:[1], 4:[1,2]}

  1. bfs(G, source) — ordre BFS
  2. dfs(G, source) — ordre DFS itératif
  3. distance(G, s, t) — nb d'arêtes du plus court chemin

Signature attendue

def bfs(G: dict, source: int) -> list:
def dfs(G: dict, source: int) -> list:
def distance(G: dict, s: int, t: int) -> int:

Exemple

  • bfs({0:[1,2], 1:[0,3,4], 2:[0,4], 3:[1], 4:[1,2]}, 0) → [0, 1, 2, 3, 4]

📖 Rappel de cours

BFS — file FIFO :

Niveaux croissants. Plus courts chemins. $O(|V|+|E|)$.

DFS — pile LIFO :

Profondeur. Détecte cycles. $O(|V|+|E|)$.

⚠ Le piège : Ce sont les mêmes vingt lignes, à la structure de données près : une file donne le parcours en largeur, une pile celui en profondeur. Marquer un sommet à l'enfilement, jamais au défilement, sinon il y entre plusieurs fois. Et le BFS ne donne le plus court chemin que si les arêtes sont sans poids.

← Exercices sur les graphes en Python — BFS, DFS, Dijkstra

Exercices du meme theme

  • Algorithme de Dijkstra
  • Composantes Connexes
  • Détection de Cycle dans un Graphe Non Orienté

La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Essai gratuit
Testez toutes les fonctionnalités sans engagement
En continuant, vous acceptez notre politique de confidentialité.
Déjà abonné ? Se reconnecter
Recevez un lien de connexion par email
Parcourir gratuitement →
Aperçu limité · sans inscription · sans vérification IA
€4,99
/ mois · accès illimité · résiliable
Paiement sécurisé
En vous abonnant, vous acceptez nos conditions et politique de confidentialité.
Résiliation possible depuis votre espace PayPal.

Chargement...

Initialisation de l'environnement

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Progression
0 / 0
Solo
— / —
Python... SQL...
Recherche
🔬 Bac a sable Python ↗ 🧪 Bac a sable SQL ↗ 📝 Concours blanc ↗ 🏖️ Code à la plage ↗ 📚 Listes de rentrée ↗ 🛠️ Admin ↗
Tu aimes PrepaPython ?
Fais-le savoir !
← Retour à l'accueil Mentions legales & confidentialite