Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Listas Con Nodos C++

Estas en el tema de Listas Con Nodos C++ en el foro de C/C++ en Foros del Web. Lo que pasa es que tengo que ordenar unos nodos en ascendente y descendente. Con burbuja esta fácil pero no se como hacerle con nodos, ...
  #1 (permalink)  
Antiguo 15/12/2009, 16:24
CPP
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Listas Con Nodos C++

Lo que pasa es que tengo que ordenar unos nodos en ascendente y descendente.
Con burbuja esta fácil pero no se como hacerle con nodos, quisiera ver si alguien me ayuda y se los agradezco de todos modos si no pueden, solo faltarían las funciones de ordenamiento, el termino CAJA se refiere al NODO:

Código:
#include <cstdlib>
#include <iostream>

using namespace std;

struct caja{
       int a;
       struct caja *post;       
};
typedef caja *CAJA;

void iniciar(CAJA &N)
{
     N=NULL;
}
int vacia(CAJA N)
{
      if (N==NULL)
         return 1;
      return 0;   
}

void insertar(int x, CAJA &N)
{
     CAJA M;     
     if (vacia(N))
     {
          N=new caja;
          N->a=x;
          N->post=NULL;
     }
     else
     {
         M=new caja;
         M->a=x;
         M->post=N;
         N=M;
     }   
}
void eliminar(CAJA &N)
{
     CAJA M;
     if (vacia(N))
        cout<<"La lista se encuentra vacia"<<endl;
     else {
                  M=N;
                  N=N->post;
                  delete M;
          }   
}

void mostrar(CAJA N)
{
     CAJA M;    
     if (vacia(N))
        cout<<"La lista se encuentra vacia"<<endl;
     else {
                  M=N;
                  while (M!=NULL)
                  {
                      cout<<M->a<<"  - > ";
                      M=M->post;
                  }
                  cout<<" NULL "<<endl;
          } 
     
}

void ASC(CAJA *N)
{
 //Como le hago?
}

void DESC(CAJA *N)
{
 //Como le hago?
}

int main(int argc, char *argv[])
{
    CAJA N;
    int elec,x;

    iniciar(N);
    
    do {
       system("CLS");
       cout<<"   MENU  "<<endl;
       cout<<"   1. Insertar Nodo  "<<endl;
       cout<<"   2. Eliminar Nodo  "<<endl;
       cout<<"   3. Ordenar Ascendente  "<<endl;
       cout<<"   4. Ordenar Descendente  "<<endl;
       cout<<"   5. Mostrar Lista"<<endl;
       cout<<"   6. Salir  "<<endl;
       cout<<"   Elige una opcion:   ";
       cin>>elec;
       switch(elec)
       {
               case 1: cout<<"Dato: "  ;
                       cin>>x;
                       insertar(x,N);
                       break;
               case 2: eliminar(N);
                       break;
               case 3: ASC(N);
                       break;
               case 4: DESC(N);
                       break;
               case 5: mostrar(N);
                       break;
               case 6: cout<<"Fin del Programa "<<endl;   
                       break;
               default: cout<<"Opcion no valida. "<<endl;
       }
    system("PAUSE");
    }while (elec!=6);
    
    return EXIT_SUCCESS;
}

Última edición por CPP; 15/12/2009 a las 16:30
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:15.