Beh non posso scrivere io il codice per te, penso di essere stato esaustivo
nella mia risposta su come rappresentare un grafo in C,poi come farlo
realmente te lo ricavi dallo studio di un qualsiasi manuale di C.
......vabbè giusto perchè è natale....ti scrivo a braccio un abbozzo di codice
per inserire un arco fra due nodi. il grafo ha 10 nodi identificati dai numeri
da 0 a 9.
quindi alla fine di tutti gli inserimenti per fare un esempio grafo[4] sara uncodice:struct nodo { int id; struct nodo *next }; struct nodo *grafo[10];//da inizializzare tutto a NULL void inserisci_arco(struct nodo *origine, int desitinazione){ struct nodo *temp; temp = origine; origine = (struct nodo*)malloc(sizeof(struct nodo)); if (origine == NULL){ printf("per fortuna non ho dimenticato di controllare il valore di ritorno della malloc\n"); exit(EXIT_FAILURE); } origine->id = destinazone; origine->next = temp; return; } /* per inserire un arco da 5 a 3*/ /* fai inserisci_arco(&grafo[5],3) */
puntatore ad una lista contenente tutti gli archi che partono dal nodo 4.
per cancellare un arco fra i e j fai la free sull'elemento della lista grafo[i] che contiene id= j.

Rispondi quotando