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:
è una funzione che prende in input la testa della lista primaria (p), i pesi dell'arco e le 2 città da collegare.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; }
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!

Rispondi quotando