Peret,
Acredito que o problema seja o retorno dos lados da árvore.
this.informarMaior(raiz.getEsquerdo());
this.informarMaior(raiz.getDireito());
Você retorna um valor que não é utilizado por uma variavel. Reveja a lógica da
sua sentença.
Revise os tipos de buscas (in-ordem, pré-ordem e pós-ordem) para melhorar sua
compreensão sobre árvores.
Dica: se é uma árvore binária de busca, logo o maior valor está a direita da
raiz. Não existindo lado direito, o maior número é a própria raiz.
Abraço
Rodrigo Nunes
________________________________
De: Peret <rcperet@yahoo.com.br>
Para: java-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 1 de Dezembro de 2010 7:33:08
Assunto: [java-br] Probleams em árvore binária de busca
Pessoal, bom dia!
Estou tentando fazer um método que retornaria o maior valor de código de um
produto inserido em uma árvore binária de busca mas, estou enfrentando um
pequeno problema, o método está retornando apenas o valor da raiz da árvore. Não
importa quantos produtos eu insira e quais os valores de código, ele sempre me
retorna o valor da raiz. A quem puder ajudar, eu agradeço.
Abaixo segue o método:
public int informarMaior(No raiz){
int maior = 0;
Produto prodAux;
if (raiz != null){
prodAux = (Produto) raiz.getElemento();
if(maior < prodAux.getCodigo()){
maior = prodAux.getCodigo();
}
this.informarMaior(raiz.getEsquerdo());
this.informarMaior(raiz.getDireito());
return maior;
}
else{
return 0;
}
}
[As partes desta mensagem que não continham texto foram removidas]
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
0 comentários:
Postar um comentário