Ir ao conteúdo
  • Cadastre-se

Balanceamento em árvore AVL após remoção de nó.


Posts recomendados

Olá!

 

Fiz um programa onde tenho uma árvore AVL que sempre que um Nó é inserido, verifico se é necessário fazer o Balanceamento. Até aí está funcionando.

 

Agora estou com dificuldades tentando fazer esse balanceamento após a remoção de um nó.
 
Vou colocar aqui o código dos métodos de remoção do nó e de balanceamento:
 
Preciso bastante dessa ajuda, 'luz', etc, galera  :)
 
Obrigado.

    protected No remover(int x, No t)    {        if(t == null)            throw new RuntimeException("Valor não encontrado");        else if(x < t.valor)            t.left = remover(x,t.left);        else if(x > t.valor)            t.right = remover(x,t.right);            else if(t.left != null && t.right != null )                 {                    No auxiliar = t.right;                             while(auxiliar.left != null) auxiliar = auxiliar.left;                    t.valor = auxiliar.valor;                                        t.right = removeMin(t.right);                                 }                 else t = ( t.left != null ) ? t.left : t.right;                 return t;    }
protected No balanceamento(No aux) {        int d, df;        d = aux.altd - aux.alte;        if (d == 2) {            df = aux.right.altd - aux.right.alte;            if (df >= 0) {                aux = rotacao_esquerda(aux);            } else {                aux.right = rotacao_direita(aux.right);                aux = rotacao_esquerda(aux);            }        } else if (d == -2) {            df = aux.left.altd - aux.left.alte;            if (df <= 0) {                aux = rotacao_direita(aux);            } else {                aux.left = rotacao_esquerda(aux.left);                aux = rotacao_direita(aux);            }        }        return aux;    }
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...