Bonjour,
J'ai un algo que je n'arrive pas à convertir pour le faire en PHP.
J'essaye de faire du parcours en profondeur d'un graphe mais je n'y arrive pas !
Voici ce que j'ai déjà fait :
le graphe que j'utilise est celui ci : Wiki
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function ParcoursProfondeur($graph, $sommet, $marquee = array()) { array_push($marquee, $sommet); echo $sommet; foreach($graph->getSommet($sommet)->getSuccesseur() as $succ) // pour chaque successeur de $sommet { if(!in_array($succ, $marquee)) // si il n'est pas marqué { array_push($marquee, $succ); // on marque le sommet ParcoursProfondeur($graph, $succ, $marquee); // parcour en profondeur } } }
Sur le wiki on devrai obtenir : A, B, D, F, E, C, G
Moi j'obtiens : A, B, F, E, D, C, G, E, F
Algo itératif au cas où :
Quelqu'un pourrait t-il me dire pourquoi ça ne fonctionne pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Initialement tous les sommets sont non marqués La pile p est vide Tant quil existe s non marquée, ouvrir s et linsérer dans p Tant que p nest pas vide Sil existe y non marquée voisin de x le sommet de p Alors ouvrir y et lins´erer dans p Sinon fermer x et supprimer x de p
Partager