Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2014, 08:51
Urban94
 
Fecha de Ingreso: marzo-2014
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 10 años, 2 meses
Puntos: 0
Lista ordenada simple

Chicos tengo un problema, estaba haciendo una lista pero no me la ordena bien con los valores: 2,4,3,6,1
y me muestra 1, 2, 4 ,3, 6

aca les dejo el codigo

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct enlazar{
  5.     int letra;
  6.     enlazar *siguiente;
  7. };
  8.  
  9. int main(){
  10.     enlazar *primero = NULL, *ultimo = NULL, *nuevo, *auxiliar,*auxiliar2;
  11.     int n;
  12.     cin >> n;
  13.    
  14.     while(n != 0){
  15.         nuevo = new enlazar;
  16.         nuevo->letra = n;
  17.         nuevo->siguiente = NULL;
  18.        
  19.         if(primero == NULL){
  20.             primero = nuevo;
  21.             ultimo = nuevo;
  22.         }
  23.         else if(nuevo->letra < primero->letra){
  24.             auxiliar = primero;
  25.             primero = nuevo;
  26.             primero->siguiente = auxiliar;
  27.         }
  28.         else{
  29.             auxiliar = primero;
  30.             while(nuevo->letra < auxiliar->letra){
  31.                     ultimo->siguiente = nuevo;
  32.                     nuevo->siguiente = auxiliar;
  33.                     auxiliar = auxiliar->siguiente;
  34.             }
  35.             ultimo->siguiente = nuevo;
  36.             ultimo = nuevo;
  37.         }
  38.         cin >> n;
  39.     }
  40.    
  41.  
  42.     auxiliar = primero;
  43.     while(auxiliar != NULL){
  44.         cout << auxiliar->letra << " ";
  45.         auxiliar = auxiliar->siguiente;
  46.     }
  47.     return 0;
  48. }