Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/05/2011, 07:42
elmago_rm
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Ordenacion de lista de objetos

Cita:
Iniciado por sam90 Ver Mensaje
Empeza mostrando lo que estas tratando de hacer.
intene hacerlo como dijist pero no lo acabo de entender. Hice este código, pero no lo ordena, sin embargo me parece correcto.

bool Listalibro::ordenaLibros(int cambio)
{
Clibro *nodo,*nodo2,*nodo3,*aux;
libro lib,libr;
rellenarLista(); // con esta funcion meto los libros en la pila
nodo=lista.inicio;
aux=nodo->obtenerSiguiente();
while(aux!=NULL){
lib=nodo->obtenerDato();
nodo2=nodo->obtenerSiguiente();
libr=nodo->obtenerDato();
nodo3=nodo2->obtenerSiguiente();
if(ComparaPorNumero(lib,libr)==0){
if(nodo==lista.inicio){
nodo->modificaSiguiente(nodo3);
nodo3->modificaAnterior(nodo);
lista.inicio=nodo2;
nodo->modificaAnterior(nodo2);
nodo2->modificaSiguiente(nodo);
nodo->modificaAnterior(inicio);
}
else if(nodo3==NULL){
aux=nodo->obtenerAnterior();
nodo2->modificaAnterior(aux);
aux->modificaSiguiente(nodo2);
nodo->modificaAnterior(nodo2);
nodo->modificaSiguiente(NULL);
}
else aux=nodo->obtenerAnterior();
cambio=1;
}
nodo=nodo->obtenerSiguiente();
aux=nodo->obtenerSiguiente();
if(cambio==1) ordenaLibros(0);
else{
escribirFichero(lista);//escrribe la pila en el fichero.
return 1;
}
}
}