📊nsi

Comment organiser ses révisions des graphes en NSI

3 juin 2026 7 min de lecture

Les graphes sont une notion centrale en NSI, que ce soit en Première ou en Terminale. Ils modélisent des relations entre objets : réseaux sociaux, itinéraires, dépendances de tâches... Pour le bac, tu dois maîtriser les parcours de graphe (BFS et DFS) et savoir les implémenter en Python. Pas de panique : avec une bonne organisation, ces notions deviennent claires. Voici un plan de révision pas à pas.

1. Comprendre ce qu'est un graphe en NSI

Un graphe est un ensemble de sommets (ou nœuds) reliés par des arêtes (ou arcs). En NSI, on distingue :

  • Graphe non orienté : les arêtes sont symétriques (ex : amitié Facebook).
  • Graphe orienté : les arcs ont un sens (ex : follow Twitter).
  • Graphe pondéré : chaque arête a un poids (ex : distance).

On représente un graphe en Python avec une liste d'adjacence (dictionnaire) ou une matrice d'adjacence. La liste est plus efficace en mémoire pour les graphes creux.

# Exemple : graphe non orienté (liste d'adjacence)
graphe = {
    'A': ['B', 'C'],
    'B': ['A', 'D'],
    'C': ['A', 'D'],
    'D': ['B', 'C']
}

2. Maîtriser les parcours de graphe

Les deux algorithmes fondamentaux sont le parcours en largeur (BFS) et le parcours en profondeur (DFS). Ils permettent de visiter tous les sommets accessibles depuis un sommet de départ.

BFS (Breadth-First Search)

Il explore niveau par niveau, en utilisant une file. Utile pour trouver le plus court chemin dans un graphe non pondéré.

from collections import deque

def bfs(graphe, depart):
    visites = set()
    file = deque([depart])
    while file:
        sommet = file.popleft()
        if sommet not in visites:
            visites.add(sommet)
            print(sommet)
            for voisin in graphe[sommet]:
                if voisin not in visites:
                    file.append(voisin)
    return visites

DFS (Depth-First Search)

Il explore en profondeur en utilisant une pile (ou récursivement). Utile pour la détection de cycles, le tri topologique, etc.

def dfs(graphe, depart, visites=None):
    if visites is None:
        visites = set()
    visites.add(depart)
    print(depart)
    for voisin in graphe[depart]:
        if voisin not in visites:
            dfs(graphe, voisin, visites)
    return visites

3. Cas d'usage concrets

Les graphes sont partout :

  • Réseaux sociaux : trouver les amis d'amis (BFS).
  • GPS : calcul d'itinéraire (algorithme de Dijkstra).
  • Ordonnancement de tâches : tri topologique (DFS).
  • Jeux : résolution de labyrinthe.

Pour t'entraîner, tu peux télécharger des exercices corrigés sur les graphes et consulter les fiches de révision.

4. Méthode de révision efficace

Voici une routine en 4 étapes :

  1. Théorie : relis ton cours sur les cours NSI et note les définitions clés.
  2. Implémentation : code toi-même BFS et DFS sur des exemples simples.
  3. Exercices : fais des exercices d'application (parcours, plus court chemin, détection de cycle).
  4. Annales : entraîne-toi sur des sujets de bac : ils tombent souvent en exercice 3 ou 4.

Pour approfondir, tu peux aussi regarder des vidéos sur Allo Lycée ou consulter Allo Bac pour des conseils supplémentaires.

5. Pièges à éviter

  • Confondre BFS et DFS : retiens que BFS utilise une file, DFS une pile.
  • Oublier de marquer les visites : sans cela, tu boucles infiniment.
  • Ne pas tester sur des graphes orientés : adapte les voisins en conséquence.
  • Implémenter sans comprendre : dessine le graphe et simule l'algorithme à la main.

6. Conclusion

Les graphes sont un chapitre passionnant et très valorisé au bac. En suivant cette méthode, tu seras capable de coder les parcours les yeux fermés. N'oublie pas de t'entraîner régulièrement et de consulter les ressources du site nsi-lycee.fr. Bonnes révisions !

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence entre BFS et DFS en NSI ?

BFS (parcours en largeur) explore niveau par niveau en utilisant une file ; il est utile pour trouver le plus court chemin dans un graphe non pondéré. DFS (parcours en profondeur) explore en profondeur en utilisant une pile (ou récursivement) ; il est utile pour détecter des cycles ou faire un tri topologique.

Comment représenter un graphe en Python pour le bac NSI ?

La représentation la plus courante est la liste d'adjacence : un dictionnaire dont les clés sont les sommets et les valeurs sont des listes de voisins. Par exemple : graphe = {'A': ['B', 'C'], 'B': ['A'], 'C': ['A']}. On peut aussi utiliser une matrice d'adjacence, mais c'est moins efficace en mémoire pour les grands graphes.

Les graphes orientés et non orientés sont-ils traités différemment en NSI ?

Oui. Dans un graphe non orienté, les arêtes sont symétriques : si A est voisin de B, alors B est voisin de A. Dans un graphe orienté, les arcs ont un sens : il faut gérer les voisins sortants (et éventuellement entrants). Les algorithmes BFS/DFS s'adaptent facilement : il suffit de suivre les arcs dans le bon sens.

Quels algorithmes sur les graphes sont au programme du bac NSI ?

Au programme : parcours en largeur (BFS), parcours en profondeur (DFS), et parfois l'algorithme de Dijkstra pour le plus court chemin dans un graphe pondéré (en Terminale). Il faut savoir les implémenter et les utiliser sur des exemples concrets.

Où trouver des exercices corrigés sur les graphes pour réviser le bac NSI ?

Sur le site nsi-lycee.fr, tu trouveras une section exercices avec des corrigés détaillés. Tu peux aussi consulter des annales de bac en ligne.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
graphes NSIparcours de grapheBFSDFSrévisions NSIbac NSI
Pixel