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!