hola como les va?
me gustaria ordenar una lista enlazada simple
hasta ahora lo que me salio
es encontrar el nodo con el que tenga el menor valor
como para empezar a pasarlo a otra lista nueva.
pero no se me ocurre como hacer para que vuelva a recorrer la lista a exepcion del menor que encontre
les muestro mi funcion
como siempre aclaro que solo vengo por sugerencias y opiniones de gente con mas experiencia , para aprender :)
Código C:
Ver originalvoid ordenarMenorAmayor(punteroNodo * cabeza )
{
int i = 0;
int resti =1;
int valoraux = 0;
punteroNodo menor;
punteroNodo aux;
punteroNodo nueva;
punteroNodo sustitu = *cabeza;
nueva = NULL;
menor = *cabeza;
aux = (*cabeza)->siguiente;
for(i = 0 ; i < cant-resti ; i ++)
{
if((*cabeza)->valor > aux->valor)
{
menor = aux;
}
*cabeza = (*cabeza)->siguiente;
aux = (*cabeza)->siguiente;
}
menor->siguiente = nueva;
*nueva = *menor;
printf("menor es %d \n" , nueva
->valor
); }