Aller au contenu

Tri Topologique

DAG — ordre d'exécution des tâches

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

Enonce

Implémenter le tri topologique par DFS sur un DAG. Tester sur un graphe de dépendances de cours.

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

Signature attendue

def tri_topologique(G: dict) -> list:

Exemple

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

📖 Rappel de cours

Le tri topologique ordonne les sommets d'un DAG (graphe orienté acyclique) tel que pour chaque arc $(u,v)$, $u$ apparaît avant $v$.

Algorithme (DFS post-ordre inversé) :

1. DFS complet. Quand un sommet est terminé (tous ses voisins visités), l'ajouter en tête.

2. Le résultat est un tri topologique.

Alternative (algorithme de Kahn) :

File des sommets de degré entrant 0. Retirer, décrémenter les voisins, ajouter les nouveaux de degré 0.

Un tri topologique n'existe que si le graphe est acyclique.

← 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é
  • Algorithme de Bellman-Ford
  • Algorithme de Prim
  • Algorithme de Kruskal

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