Ciao a tutti.
Ho fatto un programma che visualizza una lista di numeri casuali compresi tra 0 e 9. Ora devo fare in modo che l'utente possa eliminare a suo piacimento un elemento della lista. Ad esempio se ho la seguente lista:
3--> 4--> 1--> 8--> 0--> 0--> NULL
Mettiamo che l'utente voglia eliminare gli 0. Allora inserisce il valore 0 e la lista deve diventare:
3--> 4--> 1--> 8--> NULL
Il problema è che il programma non mi visualizza il risultato della lista modificata. Il codice che dovrebbe eliminare il nodo è questo:
elimina è il valore inserito dall'utente. Il ragionamento è questo:codice:while( startPtr != NULL) { ListNodePtr tempPtr; if( elimina == startPtr->data) { tempPtr = startPtr; startPtr = startPtr->nextPtr; free(tempPtr); } else { startPtr = startPtr->nextPtr; } }
se elimina è uguale al numero del nodo allora tampPtr (puntatore al nodo temporaneo) tempPtr = startPtr e startPtr->nextPtr avanza di nodo. Poi libera la memoria con la funzione free. In caso contrario fai avanzare startPtr al prossimo nodo.
Ragazzi gentilmente dove ho sbagliato ?
Grazie![]()