Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2013, 22:54
eke_ps
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 14 años, 2 meses
Puntos: 0
lista enlazada simple en C

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 original
  1. void ordenarMenorAmayor(punteroNodo * cabeza )
  2. {
  3.     int i = 0;
  4.     int resti =1;
  5.     int valoraux = 0;
  6.     punteroNodo menor;
  7.     punteroNodo aux;
  8.     punteroNodo nueva;
  9.     punteroNodo sustitu = *cabeza;
  10.     nueva = NULL;
  11.  
  12.    
  13.  
  14.    
  15.     menor = *cabeza;
  16.     aux = (*cabeza)->siguiente;
  17.     for(i = 0 ; i < cant-resti ; i ++)
  18.     {
  19.        
  20.         if((*cabeza)->valor > aux->valor)
  21.         {
  22.             menor = aux;
  23.         }
  24.         *cabeza = (*cabeza)->siguiente;
  25.         aux = (*cabeza)->siguiente;
  26.        
  27.     }
  28.  
  29.  
  30.     menor->siguiente = nueva;
  31.     *nueva = *menor;
  32.  
  33.     printf("menor es %d \n" , nueva->valor);
  34. }