nonostante il thread sia vecchio di più di otto anni, provo lo stesso...
ho fatto senza problemi i primi due punti..ma ho dei problemi nel modificare i puntatori della lista..- ti crei un vettore di puntatori(agli elementi della lista) e ci scrivi dentro gli indirizzi degli elementi della lista, così com'è, visitandola semplicemente (complessità lineare)
- ordini il vettore di puntatori (complessità = complessità dell'algoritmo di ordinamento)
- modifichi i puntatori della lista visitando uno ad uno gli elementi così come sono ordinati nel vettore (complessità lineare, c'è solo da modificare un paio di puntatori ogni elemento)
ho fatto una funzione del genere
una funzione che prende la lista (come puntatore di puntatore a nodo (per modificare il puntatore))Codice PHP:void AdjustList(node* *p,char* *a){
if (*p != NULL){
node **nxt = &((*p)->next);
*p = (node*) *a;
(*p)->next = *nxt;
AdjustList(nxt, a + 1);
}
return;
}
e l'array di puntatori.. nella visita salvo il successivo corrente poi cambio l'indirizzo del nodo corrente con quello ordinato nell'array, nel successivo del nodo appena cambiato vado a mettere il successivo salvato precedentemente, per non saltare nodi, e richiamo ricorsivamente la funzione...
l'output è un segmentation fault..cosa sbaglio?? lo scopo è puramente didattico, per prendere mano con i puntatori.

Rispondi quotando