la funcion tiene que ordenar de forma ascendente o descendentes y no me ardena.
Código
void agregar_nodo(nodo_t**p,char *ruta) { nodo_t*nuevo; nodo_t*actual; nodo_t*anterior; nuevo->filename=pal; nuevo->sig=NULL; if(*p==NULL) { *p=nuevo; } else { actual=*p; anterior=NULL; while((actual!=NULL)&&(ruta>actual->filename)) { anterior=actual; actual=actual->sig; } if(anterior==NULL) { nuevo->sig=*p; *p=nuevo; } else { anterior->sig=nuevo; nuevo->sig=actual; } } }