Ragazzi vi posto un attimo le due strutture utilizzate per il grafo.
Il grafo in questione è implementato tramite liste di adiacenza.
Adesso vi pongo il problema, se ad un certo punto io voglio modificare il valore di un nodo del grafo, e questo nodo è presente in diverse liste di adiacenza si presume che alla modifica nell'array del vertice corrisponda una modifica a tutti i vertici che rappresentano il medesimo nelle liste ( la modifica è intesa come modifica della chiave). Quindi in pratica la miglior soluzione sarebbe la seguente:codice:struct e{ void *key; struct e *next; //puntatore al prossimo elemento della lista di adiacenza }; typedef struct e edge ( struttura del nodo) struct g{ int nv; //numero vertici grafo edge **adj; //lista di tutti i vertici int allocati; //numero locazioni allocate }; typedef struct g grafo;
Ogni volta che si inserisce un arco e quindi automaticamente un vertice in una lista di adiacenza, ci deve essere un collegamento tra la sua chiave e quella del vertice medesimo presente nell'array. Ho provato in diversi modi, qual'è la giusta istruzione per avere questo collegamento logico tra queste due informazioni, considerando anche la key è un puntatore a Void ? Grazie mille, spero di essere stato chiaro

Rispondi quotando