Rieccomi (sorry).
Ho provato a scrivere il codice con la stessa struttura del bubble sort ma ho alcuni problemi.
Volevo evitare di contare prima gli elementi della lista (cosa che ho visto fare in alcuni esempi di code che ho trovato in rete).
La mia idea era quindi quella di utilizzare un puntatore precedente a quelli da confrontare e, eventualmente, swappare.
Il problema è che non so dove porre questo puntatore all'inizio, quando l'elemento da confrontare col successivo è = head.
Dopo aver controllato che la lista non sia vuota o costituita da un solo nodo, volevo utilizzare due cicli del tipo
while(i -> next != NULL)
{
while((j -> next) != NULL)
{
//...
j = j-> next;
}
i = i -> next;
}
dove i e j sono puntatori a elementi della lista.
Ora, questa cosa evidentemente non va bene, perché non ho dove posizionale il puntatore *pre, che mi servirebbe successivamente per lo swap.
Avevo anche pesato di creare un primo puntatore temporaneo per evitare questo problema.
C'è un modo più semplice per fare questa cosa? Cosa non sto considerando?
Vi ringrazio