Pascal/Turbo Pascal - Sumar dos listas enlazadas

 
Vista:

Sumar dos listas enlazadas

Publicado por Pascual (94 intervenciones) el 31/03/2005 18:19:35
Tengo un problema al sumar el contenido de dos listas enlazadas de números, el caso es que si son de la misma longitud se hacerlo pero si una lista es mayor que otra ya me da problemas. ¿Sabeis de algún programa básico de sumar , restar, multiplicar, etc de listas?. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sumar dos listas enlazadas

Publicado por Roberto Garcia (41 intervenciones) el 01/04/2005 08:12:43
aqui lo que tienes que hacer es preever cuando una lista se acaba para hacer un ciclo hasta que se termine la lista que falta, por ejemplo, para sumar dos listas del mimo tamaño, haces mas o menos esto

sum:=0;
while lista1 <> nil do begin
sum:=sum+lista1^.numero+lista2^.numero
lista1:=lista1^.sig;
end

entonces lo que hay que hacer es preguntar, si alguan de las listas se queda vacia, para empezar a sumar solo la que queda llena.

procedure sumar(lista:Tlista);
begin
while lista <> nil do begin
sum:=sum+lista^.numero;
lista:=lista^.sig;
end;
end;

sum:=0;
while lista1 <> nil do begin
if lista2 =nil then begin
sumar(lista1)
break;
end;
sum:=sum+lista1^.numero+lista2^.numero
lista1:=lista1^.sig;
lista2:=lista2^.sig;
end;

if lista2 <> nil then
sumar(lista2);

Lo que hace esto es sumar los numeros de las listas mientras lista1 no este vacia, pero dentro del ciclo se pregunta si lista2 esta vacia, si esto es cierto, llama al procedimietno sumar, de lo contrario sigue normal,

al terminar el ciclo, pregunta si lista2 quedo vacia, si no quedo vacia pues se llama al procedimiento sumar.

y sumar es un procdimiento que suma los elementos de una lista. Aunque para este caso mejor suma las listas una por una.

sum:=0;
sumar(lista1);
sumar(lista2);

que al fin y al cabo el resultado es el mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Pascual (94 intervenciones) el 01/04/2005 18:06:21
Gracias me sirvió de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar