Un site web peut être modélisé par un graphe
dans lequel les sommets représentent les pages du site et les arêtes
représentent les liens hypertextes permettant
d'aller d'une page à une autre.
On suppose que ce graphe est connexe,
c'est-à-dire qu'à partir d'une page donnée, toute autre page est accessible
par une série de liens (une chaîne).
On cherche à tester toutes les pages de ce site, c'est-à-dire à parcourir ce graphe en passant par tous ses sommets.
On va procéder à un parcours en largeur du graphe en mettant les sommets successifs dans une file (structure FIFO).
Voici la description intuitive de l'algorithme :
- On enfile le sommet de départ (on visite la page d'accueil du site).
- On enfile les sommets adjacents à la tête de file (on visite les pages ciblées par la page d'accueil) s'ils ne sont pas
déjà présents dans la file.
- On défile(c'est-à-dire on supprime la tête de file).
- Tant que la file n'est pas vide, on ré-itère les points 2 et 3.
En d'autres termes, on défile toujours prioritairement les sommets (les pages) les plus tôt découverts.
Dans l'illustration ci-dessous, un sommet grisé est enfilé et un sommet noirci est défilé.
On numérote chaque sommet au moment de son apparition dans la file. A tout moment, la tête de file
est donc le sommet portant le plus petit numéro parmi ceux de la file (c'est à dire parmi les gris).
Parcours en largeur
 |
Étape 0 : on part du sommet S |
 |
Étape 1 : on enfile le sommet S et on le numérote 1 |
 |
Étape 2 : on enfile
les sommets 2, 3 et 4 (adjacents au sommet 1) et on défile le sommet 1.
Remarque : l'ordre de numérotation (c'est à dire d'enfilade) des voisins du sommet tête de file est choisi au hasard. |
 |
Étape 3 : on enfile les sommets 5 et 6 (adjacents au sommet 2) et on défile le sommet 2 |
 |
Étape 4 : on enfile les sommets 7, 8 et 9 (adjacents au sommet 3) et on défile le sommet 3 |
 |
Étape 5 : on enfile le sommet 10 (adjacent au sommet 4) et on défile le sommet 4 |
 |
Étape 6 : on défile le sommet 5 |
 |
Étape 7 : on enfile les sommets 11 et 12 (adjacents au sommet 6) et on défile le sommet 6 |
 |
Étape 8 : on défile le sommet 7 |
 |
Étape 9 : on défile le sommet 8 |
 |
Étape 10 : on défile le sommet 9 |
 |
Étape 11 : on enfile les sommets 13 et 14 (adjacents au sommet 10) et on défile le sommet 10 |
 |
Étape 12 : on défile le sommet 11 |
 |
Étape 13 : on défile le sommet 12 |
 |
Étape 14 : on défile le sommet 13 |
 |
Étape 15 : on défile le sommet 14 |
On donne le nom de parcours en largeur d'un graphe car cet algorithme
va visiter tous les sommets à distance 1 du sommet de départ puis tous les sommets à distance
2 du sommet de départ puis tous les sommets à distance 3 du sommet de départ etc...
Un sommet à distance n du sommet de départ S est un sommet dont le plus court chemin qui le sépare de S contient n
arêtes.