ayuda
soy un estudiante de sistemas de la argentina, y tengo un problema al programar listas dinamicas con c++.

el hecho es que al cargar la lista, uso una funcion llamada carga, la cual recibe un puntero a la lista y un dato a cargar, el tema es que esta funcion la hice de forma recursiva, por lo que me quedo rapidamente sin memoria aun con listas chicas.
los datos los tomo de un archivo de texto y con estos cargo la lista.

la funcion es la sig:

struct lis *cargar(struct lis *p,
truct tipo_dato info)
{
struct lis *nodo = nuevo();
if (nodo){
nodo->base = info;
nodo->sig=NULL;
if (lista_vacia(p)) return nodo;
if (strcmp(info.pal, p->base.pal) <= 0){
nodo->sig = p;
p = nodo;
}
else
p->sig = cargar(p->sig, info);//esta es la recursiva
}
else
puts("no hay mas memoria dospinible");
return p;
}


desde ya agradesco su colaboracion en todo lo que pueda.
Balbuena, orlando
bs as, argentina
oab_boa@yahoo.com.ar
 
lo siento, no se mucho de C
tengo nociones básicas de C, pero creo que no figuro en ninguna de las listas de expertos como tal,.... de todas formas, no entiendo tu pregunta ¿Quieres hacer el algoritmo que me dices pero sin usar recursividad? Si es eso, dimelo... (una funcion recursiva siempre se podra cambiar por un ciclo con una condicion de salida, por si te ayuda....)

De todas formas, creo que deberias dirigirte a alguin con mas conocimientos de C en concreto, ... Lo siento.
 
Pregunta finalizada. Valoración: 3.
agradesco tu sincera respuesta, igualmente e encontrado una solucion para esta cuestion

orlando balbuena