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]
Respuesta
1
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, dímelo... (una función recursiva siempre se podrá cambiar por un ciclo con una condición de salida, por si te ayuda...)
De todas formas, creo que deberías dirigirte a alguien con más conocimientos de C en concreto, ... Lo siento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas