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; }