Somar valores numa lista encadeada

5 respostas
C

Estou tentando implementar um método para somar valores dentro de uma variável b [/b]numa lista encadeada, o método Soma_Saldo está compilando mas está pegando só o saldo da 1ª conta, não está somando com os demais. Se alguém poder ajudar eu agradeço.

class Listadecontas

{

public ContaL contas;

Listadecontas prox;

Listadecontas aux;

int parametro=0;
void inserir (ContaL c)

{

if (this.contas == null)

{

this.contas = c;

prox = new Listadecontas();

}

else

prox.inserir©;

parametro+=1;

}
void retirar (ContaL c) 
{
 if (contas != null) 
  {
   if (contas == c) 
	 {
     this.contas = prox.contas;
     this.prox = prox.prox;
   }
	 else
      prox.retirar(c);
      parametro-=1;
  }

}

ContaL procurar (String num) 
{
if (contas == null) 
   return null;
else
 {
  if (contas.numero().equals(num)) 
     return contas;
  else
      return prox.procurar(num);
}

}

[b]double Soma_Saldo () {
double contador = 0.0;

while (prox.aux != null)
{ 
contador += prox.contas.saldo();
} 

return (contador);

}
[/b]

}

5 Respostas

J

Vc já esperimentou usar a Classe do java chamada LinkedList ???

Utilizando esta classe, vc poderá percorrer sua lista de forma simples, inserindo e removendo itens, tendo como único íncomodo, fazer um casting para pegar os elementos que vc inseriu na lista. A classe LinkedList é uma classe que implementa um lista de Objetos Object que tem vários métodos para inserção, remoção e busca que facilitam seu trabalho.
Ok ??
Qualquer dúvida é só me enviar mensagem…
Abraços…
Jeferson…

N

tenda assim:

double Soma_Saldo () { 
if (prox == null)
	return(0.0);
else
	return(contas.saldo() + prox.Soma_Saldo());
}

diz se deu ou não… valeu.

C

Neto, fiz a lista dessa forma e deu certo, obrigado!

Tenho mais uma dúvida no vetor:
O método Saldo_Total() está somando os saldos das contas corretamente, só que quando eu excluo uma conta, o valor do saldo da mesma não é retirado da soma dos saldos, ou seja, após excluir uma conta, que faço uma referência para esse método Saldo_Total() vem um valor como se não tivesse sido excluído nenhuma conta.

Espero contar com sua ajuda novamente:

public double Saldo_Total() { double somasaldo = 0.0; for (int indice=0; indice < contas.length; indice++) { if (contas[indice] != null) { somasaldo += contas[indice].saldo(); } } return(somasaldo); }

Obs. Jefferson, obrigado também.

Francisco Gerson (creipi)

N

Creipi, não entendi… as contas não estão em uma lista??? pq vc está usando vetor então? O que tem nele??? poste o método que retira deve vetor tb.

Se o Soma_Saldo não soma todos os saldos, obtendo o saldo total, o que deve fazer então o método Saldo_Total?

Neto

C

Neto, vou passar o programa para o seu e-mail eu vou me explicar melhor OK!

creipi

Criado 12 de novembro de 2003
Ultima resposta 13 de nov. de 2003
Respostas 5
Participantes 3