Ciao a tutti,
anche io sono alle prese con un grafo, ed ho anche io lo stesso problema nella creazione degl'archi, quando lo vado a stampare mi stampa, come raffigurato sopra, un collegamento con lo stesso elemento.
Qualcuno ha qualche dritta?
Il codice per la creazione degl'archi è il seguente:
codice:
arco_t *arc,
              *a;

arc = (arco_t *) malloc (sizeof(arco_t));
a = (arco_t *) malloc (sizeof(arco_t));

while(p != NULL)
{
     if(strcmp(p->nome,nome2)==0)
     {
          printf("Trovata anche la citta d'arrivo: %s\n", nome2);
          arco = p->lista_archi_p
          arco->vertice_adiac_p = p;
          arco->costo = euri;
          arco -> durata = ore;
          arco->arco_succ_p = NULL;
          printf("creazione arco eseguita\n");
     }

printf("%s\n", p->nome);
p = p->vertice_succ_p;

}
è una funzione che prende in input la testa della lista primaria (p), i pesi dell'arco e le 2 città da collegare.
La prima cosa che comunque non ho scritto perchè irrilevante è un ciclo che scorre tutti i vertici fino a quando non trova la città di partenza, mentre ho scritto la seconda parte, ovvero il programma cerca la città di destinazione e una volta trovata crea l'arco.
Attendo e spero in una vostra risposta.
Grazie!