Metodo recursivo

8 respostas
X

Implemente um método recursivo que soma todos os elementos contidos em uma lista
simplesmente encadeada (assuma que a lista armazena apenas objetos do tipo Integer).

Como posso fazer isso?

8 Respostas

M

Que tal estudar um pouco antes de sair procurando respostas no fórum.

Creio que fornecer resposta a perguntas desse tipo não seja o objetivo deste fórum.

ViniGodoy
public int soma(No valor) {
    return valor == null ? 0 : valor.getValor() + soma(valor.getProximo());
}

public int somaTodos() {
    return soma(raiz);
}
ViniGodoy

mynhok:
Que tal estudar um pouco antes de sair procurando respostas no fórum.

Creio que fornecer resposta a perguntas desse tipo não seja o objetivo deste fórum.

E por que não seria? O objetivo do fórum é trocar conhecimento.
O dele deveria ser aprender… mas cada um com sua consciência…

X

Valeu ViniGodoy

Agora irei fazer o restante dos exercicios pois só me faltava este empurranzinho

Obrigado

Paulo_Silveira

oi pessoal

isso ai ainda nao esta recursivo!

tem de ser algo assim

int soma(List<Integer> numeros) {
  if (numeros.isEmpty()) return 0;
  int primeiroElemento = numeros.remove(0);
  return primeiroElemento + soma(numeros); // recursao aqui
}

isso é: se nao tem mais o que somar, retorna 0, se nao pega o primeiro elemento e soma com o restante da lista, tirando o primeiro elemento.

esse codigo em particular tem o side effect de destruir a lista (ela terminara vazia), sem contar que se for uma ArrayList ela sera toda hora rearranjada (ai era melhor remover o ultimo elemento, com uma Queue o codigo ficaria mais bonito de se ler)

ViniGodoy

Como não? Olhou direito o método Soma(No) ?

public int soma(No valor) {  
   return valor == null ? 0 : valor.getValor() 
        + soma(valor.getProximo());  //Recursão aqui
}

Isso é, se chegou num nó nulo (fim da lista), soma 0.
Caso contrário, o valor é a soma do valor do próprio nó, mais as somas do próximo.

Paulo_Silveira

oi vini

desculpe, falha minha. :slight_smile: escrevi a emsma coisa so que com a api do java util, heeh.

ViniGodoy

heehheeh. :lol:

Criado 13 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 8
Participantes 4