tNumeroSommet grapheVoisinSommetNumero(tGraphe graphe, tNumeroSommet sommet, int numero) { int nbVoisins; auxVerifieNumeroSommet(graphe, sommet); /*if (grapheEstOriente(graphe)) halt("Fonction réservée aux graphes non orientés");*/ nbVoisins = graphe->tableVoisins[sommet].nb; if ( (numero<0) || (numero>=nbVoisins) ) { halt("Numero de successeur incorrect (%d) pour le sommet numero %d", numero, sommet); } return graphe->tableVoisins[sommet].tab[numero]; }
tNumeroSommet graphePredecesseurSommetNumero(tGraphe graphe, tNumeroSommet sommet, int numero) { int nbPredecesseurs; auxVerifieNumeroSommet(graphe, sommet); if (!grapheEstOriente(graphe)) halt("Fonction reservee aux graphes orientes"); nbPredecesseurs = graphe->tablePredecesseurs[sommet].nb; if ( (numero<0) || (numero>=nbPredecesseurs) ) { halt("Numero de successeur incorrect (%d) pour le sommet numero %d", numero, sommet); } return graphe->tablePredecesseurs[sommet].tab[numero]; }
int grapheNbVoisinsSommet(tGraphe graphe, tNumeroSommet sommet) { auxVerifieNumeroSommet(graphe, sommet); /*if (grapheEstOriente(graphe)) halt("Fonction réservée aux graphes non orientés");*/ return graphe->tableVoisins[sommet].nb; }
int grapheNbPredecesseursSommet(tGraphe graphe, tNumeroSommet sommet) { auxVerifieNumeroSommet(graphe, sommet); if (!grapheEstOriente(graphe)) halt("Fonction reservee aux graphes orientes"); return graphe->tablePredecesseurs[sommet].nb; }
void grapheRecupNomSommet(tGraphe graphe, tNumeroSommet numero, tNomSommet nomSommet){ auxVerifieNumeroSommet(graphe, numero); strcpy(nomSommet, graphe->nomSommets[numero]); }
int grapheNbSuccesseursSommet(tGraphe graphe, tNumeroSommet sommet){ auxVerifieNumeroSommet(graphe, sommet); if (!grapheEstOriente(graphe)) halt("Fonction réservée aux graphes orientés"); return graphe->tableSuccesseurs[sommet].nb; }