Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2013, 11:21
freguesi99
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Problema con lista enlazada simple C

Hola amigos ,vereis tengo un problema , tengo una lista enlazada con un dato que es un ano dentro y
quiero ordenarla por ese año de menor a mayor , el dato se va leyendo de un fichero dato a dato y
tengo un insertar en la lista enlazada que lo que hace es ordenar segun voy insertando el problema que tengo
es que me lo ordena todo bien menos el primer elemento que directamente no lo ordena el codigo que tengo es el siguente:

Código:
struct dado {

int ano;
struct dado *sig;

};


typedef struct dado dados;
dados* dado2;

//nserta ordenando por ano
dados* insertar(int anos,dados* lista){

	
	dados *listaNueva,*listaAux;
	
	listaNueva=(dados* )malloc(sizeof(dados));
	if(listaNueva!=NULL){
		
		listaNueva->ano=anos;
		listaNueva->sig=NULL;

		if(lista==NULL){
			lista=listaNueva;
			
		
		}else{
		
			listaAux=lista;
			while(listaAux->sig && listaAux->sig->ano < anos){
				
				listaAux=listaAux->sig;			
				
			}//cierre while

			listaNueva->sig=listaAux->sig;		
			listaAux->sig=listaNueva;
			
		}//cierre del else
		

	}


	return lista;
}
el problema que tengo es que si de el fichero me leen los datos que son :

2012,2011,2006,1968 entre otros

y el resultado me sale 2012,1968,2006,2011

es decir me lo ordena todo bien menos el primer elemento y no se porque no ordena bien el primer elemento simplemento
lo que hace en el primer elemento es poner en la lista el primer elemento que lee y no se porque pasa eso