22/08/12 15:17
Dice
typedef struct nodo_grafo
{
char aeroporto[LUNGHEZZA_STRINGA_AEROPORTO];
struct nodo_grafo *nodo_succ_p;
} nodo_grafo_t;
typedef struct arco_grafo
{
int costo;
double durata;
struct arco_grafo *arco_succ_p;
struct nodo_grafo *nodo_adiac_p;
} arco_grafo_t;
int main(void)
{
[...] /*altre variabili e acquisisco il file*/
arco_grafo_t *nuovo_arco;
nodo_grafo_t *grafo,
*nuovo_grafo;
nuovo_grafo = (nodo_grafo_t *)malloc(sizeof(nodo_grafo_t));
nuovo_arco = (arco_grafo_t *)malloc(sizeof(arco_grafo_t));
strncpy(nuovo_grafo->aeroporto, citta_part, sizeof(nuovo_grafo->aeroporto));
strncpy(nuovo_arco->nodo_adiac_p->aeroporto, citta_arr, sizeof(nuovo_arco->nodo_adiac_p));
nuovo_arco->costo = costo;
nuovo_arco->durata = durata;
nuovo_arco->arco_succ_p = nuovo_arco;
grafo = nuovo_grafo;
[...]
return(0);
}
Ultima modifica effettuata da Dice 22/08/12 15:18
aaa
22/08/12 19:10
XBarboX
Purtroppo io il C non lo conosco bene ma posso darti uno spunto su come salvare il grafo con pseudo codice
struct arco
{
int citta_partenza;
int citta_arrivo;
int costo;
double durata;
}
struct nodo
{
NomeCitta stringa;
arco CittaCollegate[100];
int numero_citta_collegate;
}
nodo grafo[100];
Praticamente crei un vettore di nodi. Ogni città avrà un "ID"
Per esempio...
grafo[1].NomeCitta = "Roma";
grafo[1].CittaCollegate[0] = new arco("Roma","Parigi",500,2.5); //Aggiungo un arco che parte da roma fino a parigi che costa 500 e dura 2.5
grafo[1].numero_citta_collegate++;
aaa