Ragazzi vi posto un attimo le due strutture utilizzate per il grafo.
Il grafo in questione è implementato tramite liste di adiacenza.
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;
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:
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