Arvore binaria

3 respostas
R

Amigos, implementei uma arvore binaria (do livro how to program) e nao sei mecher direito com recursao. Preciso fazer uma busca na arvore e excluir um nodo dela. Alguem pode me ajudar ? obrigado

3 Respostas

danieldestro

public void removerNo( No no ) { if( no == null ) return; if( no.left != null ) { removerNo( no.left ); } if( no.right != null ) { removerNo( no.right ); } no.left = null; no.right = null; }

Deve funcionar!

R

Daniel, obrigado pela dica, mas esse codigo eh para excluir todos os nodos da arvore sobrando apenas o root (pelo q eu consegui perceber), o q eu quero fazer é excluir apenas o nodo q eu indico por uma passagem de parametro. Pelo q eu sei, eu teria q pegar o valor do nodo mais à direita saindo da esquerda do nodo que eu quero deletar, atribuir null para ele , percorrer denovo a arvore e fazer o nodo que eu queria excluir receber o valor do nodo q eu atribuí null para ele.

Se alguem jah tiver um procedimento parecido com esse ou qualquer outra ajuda eu agradeço. Se eu conseguir eu envio aqui pra galera. Obrigado

danieldestro

Bom, dá uma pensada aí. Não é nada difícil.

Criado 10 de novembro de 2004
Ultima resposta 11 de nov. de 2004
Respostas 3
Participantes 2