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:
el problema que tengo es que si de el fichero me leen los datos que son :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; }
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