Ayuda
Soy un estudiante de sistemas de la argentina, y tengo un problema al programar listas dinámicas con c++.
El hecho es que al cargar la lista, uso una función llamada carga, la cual recibe un puntero a la lista y un dato a cargar, el tema es que esta función la hice de forma recursiva, por lo que me quedo rápidamente sin memoria aun con listas chicas.
Los datos los tomo de un archivo de texto y con estos cargo la lista.
La función 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 agradezco su colaboración en todo lo que pueda.
Balbuena, orlando
bs as, argentina
[email protected]
El hecho es que al cargar la lista, uso una función llamada carga, la cual recibe un puntero a la lista y un dato a cargar, el tema es que esta función la hice de forma recursiva, por lo que me quedo rápidamente sin memoria aun con listas chicas.
Los datos los tomo de un archivo de texto y con estos cargo la lista.
La función 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 agradezco su colaboración en todo lo que pueda.
Balbuena, orlando
bs as, argentina
[email protected]
Respuesta de arkangel45
1