C12 : Graphes
💚 Vocabulaire

Arbres

Structure de donnée

Un graphe est une structure de donnée relationnelle.

Structure d'un graphe

Sommets/nœuds et arêtes/arcs

Un graphe est un ensemble de sommets/nœuds reliés entre eux par des arêtes/arcs.

Graphe orienté ou non orienté

Lorsque le sens des liaisons entre les nœuds est pris en compte, on parle de graphe orienté.

Graphe n° 2 : Exemple de graphe orienté

Lorsque le sens des liens entre les nœuds n'est pas pris en compte, on parle de graphe non orienté.

Graphe n° 3 : Exemple de graphe non orienté

Remarque : on utilise plutôt le terme arc pour les graphes orientés, et le terme arête pour les graphes non orientés.

Stockage de données

Les sommets comme les arêtes peuvent être associés à des données.

Vocabulaire

Taille

On appelle taille du graphe le nombre de sommets (nœuds) de ce graphe.

Chemin

Un chemin entre deux nœuds est une séquence finie de nœuds et/ou d'arcs (arêtes) permettant de les relier.

La longueur d'un chemin est le nombre d'arcs (arêtes) de ce chemin.

Vocabulaire concernant les nœuds voisins

Deux nœuds sont dits adjacents ou voisins s'ils sont reliés par un arc (arête).

Dans le cas d'un graphe orienté, on distingue les successeurs et les prédécesseurs.

Cycle

Dans un arbre, un cycle est un chemin dont les extrémités sont identiques.

Implémentation d'un graphe

Matrice d'adjacence

Une implémentation possible d'un graphe est une matrice carrée (c'est-à-dire un tableau comprenant autant de lignes que de colonnes) que l'on appelle matrice d'adjacence.

Les colonnes (comme les lignes) correspondent aux nœuds.

L'intersection entre une ligne est une colonne correspond à l'arc entre les nœuds correspondants. La cellule contient 0 si les nœuds ne sont pas reliés et 1 dans le cas contraire.

A B C D
A 0 1 1 1
B 0 0 1 1
C 0 0 0 0
D 0 0 0 0
Matrice d'adjacence d'un graphe

Liste ou dictionnaire d'adjacence

Il est possible d'implémenter les graphes sous forme :

{
    "A" : ["B", "C", "D"],
    "B" : ["C", "D"],
    "C" : [],
    "D" : []
}

Dictionnaire des listes de successeurs

{
    "A" : [],
    "B" : ["A"],
    "C" : ["A", "B"],
    "D" : ["A", "B"]
}

Dictionnaire des listes de prédécesseurs

Parcours d'un arbre

De façon similaire aux arbres, parcourir un graphe à partir d'un sommet (nœud), consiste à visiter tous les sommets possibles à partir de ce nœud.

On distingue :