¿Qué está pasando?

Oscar Padilla
04 de Julio del 2003
Tengo un pequeño problema: al usar la función Suprime del TDA Lista, al recorrer los elementos de la lista, me pone la mayoria como 0, otros como 127, y otro mas que no recuerdo. El código que uso es el siguiente:

Logico Suprime(posicion p,Lista &L){
if(L.ultimo==-1||p>L.ultimo||p<0)
return(0);
else{
int k;
for(int i=p;i<L.ultimo;i++){
k=i+1;
L.elem[i]=L.elem[k];
}
L.ultimo--;
return(1);
}
}

Como pueden ver, recorre los elementos de adelante hacia atrás, pero no se porqué me muestra 0s en lugar de los elementos correctos. Necesito ayuda para resolver el problema plz.

Gracias y que tengan un Feliz Año Nuevo

-----
Oscar Padilla

valentin
04 de Julio del 2003
lo que pasa es que tengo que resolver un programa de concatenacion de listas enlazadas
y no encuntro la forma de solucionar la funcion
suprime.
mucho le agradeceria si me respondiera

¡gracias!

Ivan
04 de Julio del 2003
Tal vez tu problema no este en "Suprime" sino en la funcion que muestra los elementos.

Ahora bien, fijate en:

- if(L.ultimo==-1||p>L.ultimo||p<0)

y tambien en:

- for(int i=p;i<L.ultimo;i++)

En el if estas diciendo que p no sea mayor que L.ultimo pero si puede ser igual, y en el for estas diciendo que 'i' solo puede ser menor, mas no igual que L.ultimo.

Creo que tambien debes tomar en cuenta desde que posicion estas iniciando, si es desde 0 ó desde 1 en tu lista.

Espero te ayude.

Saludos.