#include "bellman.h" /***************** fonction afficher ******* La fonction "afficher" prend en paramètre un sommet r à partir duquel une arborescence des plus courts chemins a été calculée. Elle suppose que les tableaux antécédents et distance ont été correctement remplis ; pour un sommet s : - si s n'est pas accessible depuis r, antecedent[s] vaut -1 - si s est accessible depuis r, distance[s] indique la distance de r à s et antecedent[s] indique l'avant-dernier sommet dans un plus court chemin de r à s. Elle indique, pour chaque sommet s autre que r, le cas échéant que le sommet s n'est pas accessible depuis r, et sinon un plus court chemin pour aller de r à s (suite des sommets à emprunter) et la distance de r à s. */ void afficher(int r) { int sommet; int s; printf("Depuis %d :\n", r); for (sommet = 0; sommet < ordre; sommet++) { if (distance[sommet] == INFINI) printf("le sommet %d n'est pas accessible\n", sommet); else if (sommet != r) { empiler(sommet); s = sommet; while(s != r) { s = antecedent[s]; empiler(s); } printf("pour atteindre %d, " "on peut suivre : ", sommet); while(!estVide()) printf("%d ", depiler()); printf(" distance parcourue : %d\n", distance[sommet]); } } printf("\n"); }