Antes de explicar como se elimina, recordemos do seguinte:
Eliminamos um dos seus filhos (esquerda ou direita). Ex:
A árvore continua balanceada.
Eliminamos no lado que contêm maior altura. Ex:
A altura da árvore pode ter mudado. É necessário fazer verificações na parte restante da árvore.
Eliminamos no lado que contêm menor altura. Ex:
A diferença de altura nesse nó fica a 2, o que invalida a sua condição de árvore AVL, neste caso é necessário proceder-se a uma rotação do nó do lado maior para o lugar o pai.A parte restante da árvore não sofre alterações.
O nó do lado maior tem também altura maior num dos lados (esquerda ou direita). A eliminação é feita no lado menor do nó pai. Ex:
É necessário rebalancear a árvore, pois no nó C existe o problema da altura, sendo preciso fazer 2 rotações: C para B e C para A.A altura da árvore pode ter mudado. É necessário fazer verificações na parte restante da árvore.
O nó pai tem altura maior um dos lados (esquerda ou direita). O nó do lado maior tem também altura maior num dos lados (esquerda ou direita). A eliminação é feita no lado menor do nó pai. Ex:
É necessário rebalancear a árvore, pois no nó B existe o problema da altura, sendo preciso fazer 1 rotações: B para A.A altura da árvore pode ter mudado. É necessário fazer verificações na parte restante da árvore. |
Antes de explicar como se elimina, relembre-mos as propriedades de uma árvore RED-BLACK.
Notas: Se eliminarmos um nó vermelho, ficamos sempre com uma árvore RED-BLACK, pois esta nunca tem 2 nós vermelhos seguidos e a altura de nós pretos em cada folha mantêm-se. Mas se eliminarmos um nó preto, teremos de resolver o seguintes problemas:
|