-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalgoRechercheProfondeur.c
51 lines (39 loc) · 1.33 KB
/
algoRechercheProfondeur.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <stdbool.h>
#define ORDRE 6
// Liste des sommets explorées, au départ, aucun ne l'est
static int sommetExplore[ORDRE] ={false,false,false,false,false,false};
//////////////////////////////////////////////////////////////////////////
// Procédure pour explorer en profondeur un graphe ; et afficher les
// sommets dans l'ordre d'exploration
//
// Entrée : entier : ordre du graphe, tableau booléen : graphe
// entier : sommet de départ
//
// Sortie : Rien ; uniquement de l'affichage
//////////////////////////////////////////////////////////////////////////
void explorer(int ordre, bool tab[ordre][ordre], int sommet){
// Affichage du sommet exploré, puis indication de l'exploration
printf("%d -> ", sommet +1);
sommetExplore[sommet]=true;
for (int i=0;i<ORDRE;i++){
if(tab[sommet][i] && !sommetExplore[i]){
explorer(ORDRE,tab,i);
}
}
}
int main(void) {
// Graphe fourni
bool tab[ORDRE][ORDRE]={
{false,true,true,true,false,false},
{false,false,false,false,false,false},
{false,false,false,false,true,false},
{true,false,false,false,false,false},
{false,true,false,false,false,true},
{false,false,false,false,false,false}};
printf("Voici les sommets dans l'ordre d'exploration :\n");
explorer(ORDRE,tab,0);
// On efface la derniere flèche
printf("\b\b\b \n");
return 0;
}