¿Podrías pasar todo el código para entender que hace el conjunto?
[code=c]int crearVacia(ListaEnlazadaRef raiz){
*raiz=NULL; //tipoNodo** <> ListaEnlazadaRef
return 0; //tipoNodo* <> ListaEnlazada
}
int estaVacia(ListaEnlazada raiz) {
return (raiz==NULL);
}
int insertarNodoComienzo(ListaEnlazadaRef raiz, tipoInfoRef info) {
return insertarAntesDeNodo(raiz,NULL,info);
}
int insertarAntesDeNodo(ListaEnlazadaRef raiz, tipoNodoRef pos, tipoInfoRef info){
tipoNodoRef nuevo, anterior;
if((nuevo=creaNodo(info))==NULL){
#ifdef DEBUG
fprintf(stderr
, "Error: creando nodo\n"); #endif
return -1;
}else{
if(estaVacia(*raiz) || pos==NULL || pos==*raiz){
nuevo->sig=*raiz;
*raiz=nuevo;
}else{
anterior=*raiz; //ant=*raiz
while(anterior!=NULL && anterior->sig!=pos){
anterior=anterior->sig;
}
if(anterior!=NULL){
nuevo->sig=pos;
anterior->sig=nuevo;
}else{
#ifdef DEBUG
fprintf(stderr
, "Error: posicion inexistente\n"); #endif
return -2;
}
}
return 0;
}
}
int insertarOrdenada(ListaEnlazadaRef raiz, tipoInfoRef info){
tipoNodoRef ant;
if(estaVacia(*raiz) || *info < (*raiz)->info)
return insertarNodoComienzo(raiz,info);
else{
ant=*raiz;
while(ant->sig!=NULL && ant->sig->info < *info){
ant = ant->sig;
}
return insertarDespuesDeNodo(raiz, ant, info);
}
}
int cargarListaEnlazadaTexto (ListaEnlazadaRef raiz, char *nombreFichero){
int cont=0;
tipoNodoRef aux, nuevo;
FILE *fid;
tipoInfoRef info;
if ((fid
=fopen(nombreFichero
, "r"))==NULL
){ #ifdef DEBUG
fprintf(stderr
, "Error: abriendo fichero\n"); #endif
return -1;
}else{
if(estaVacia(*raiz)){
crearVacia(raiz);
insertarNodoComienzo(raiz, info);
}
else if((fscanf(fid
, "%d ", info
))!=EOF
){ while(fscanf(fid
, "%d ", info
)!=EOF
){ aux=*raiz;
insertarOrdenada(&aux, info);
}
}else{
#ifdef DEBUG
fprintf(stderr
, "Error: leyendo fichero\n"); #endif
return -2;
}
}
return 0;
}
[/code]
Y bueno aqui estaria la llamada en el main:
[code
=c
]printf("Introduce el nombre de la lista de la cual quieres coger los datos: "); scanf("%s%*c", nombreFichero
); printf("Guardando fichero en lista: %d\n", cargarListaEnlazadaTexto
(&raiz
, nombreFichero
));
[/code]
(espero no haberme liado al copiar nada que no tenga que ver ni nada por el estilo :/ )