Você está na página 1de 13

Estruturas de Dados

Arvores

Arvores Balanceadas

Prof. Rosana

1
Estruturas de Dados - Árvores
• Conforme se sabe, as árvores
binárias são casos particulares de
árvores.
• Sendo uma estrutura de dados
hierárquica, ela pode facilmente se
tornar desbalanceada.

2
Árvores Binárias

3
Estruturas de Dados - Arvores
• De acordo com o tipo de algoritmo de
balanceamento estas árvores recebem nomes
especiais como:
– Árvore AVL
– Árvore Rubro-Negra
– Árvore B
– Etc..

4
Árvore AVL

5
Árvores AVL
• Balanceamento
• Uma árvore AVL é dita balanceada quando, para cada nó da árvore, a
diferença entre as alturas das suas sub-árvores (direita e esquerda) não é
maior do que um.
• Caso a árvore não esteja balanceada é necessário seu balanceamento
através da rotação simples ou rotação dupla.
• O balanceamento é requerido para as operações de adição e exclusão de
elementos.
• Para definir o balanceamento é utilizado um fator específico para nós.
• O fator de balanceamento de um nó é dado pelo seu peso em relação a
sua sub-árvore. Um nó com fator balanceado pode conter 1, 0, ou -1 em
seu fator.
• Um nó com fator de balanceamento diferente dos citados é considerado
uma árvore não-AVL e requer um balanceamento por rotação ou dupla-
rotação.

6
Árvore Rubro-Negra
Uma árvore rubro-negra é um tipo de
árvore de busca binária balanceada.
A estrutura original foi inventada em 1972 por Rudolf Bayer
que a chamou de "Árvores Binárias B Simétricas", mas
adquiriu este nome moderno em um artigo de 1978 escrito
por Leonidas J. Guibas e Robert Sedgewick.Ela é complexa,
mas tem um bom pior-caso de tempo de execução para suas
operações e é eficiente na prática: pode-se buscar, inserir, e
remover em tempo O(log n), onde n é o número total de
elementos da árvore.
De maneira simplificada, uma árvore rubro-negra é uma
árvore de busca binária que insere e remove de forma
inteligente, para assegurar que a árvore permaneça
aproximadamente balanceada.
7
Árvore Rubro_negra
• Uma árvore rubro-negra é uma árvore de busca binária onde cada nó tem um atributo de cor,
vermelho ou preto. Além dos requisitos ordinários impostos pelas árvores de busca binárias, as
árvores rubro-negras tem os seguintes requisitos adicionais:
• Um nó é vermelho ou preto.
• A raiz é preta. (Esta regra é usada em algumas definições. Como a raiz pode sempre ser alterada
de vermelho para preto, mas não sendo válido o oposto, esta regra tem pouco efeito na
análise.)
• Todas as folhas(null) são pretas.
• Ambos os filhos de todos os nós vermelhos são pretos.
• Todo caminho de um dado nó para qualquer de seus nós folhas descendentes contem o mesmo
número de nós pretos.
• Essas regras asseguram uma propriedade crítica das árvores rubro-negras: que o caminho mais
longo da raiz a qualquer folha não seja mais do que duas vezes o caminho mais curto da raiz a
qualquer outra folha naquela árvore. O resultado é que a árvore é aproximadamente
balanceada. Como as operações de inserção, remoção, e busca de valores necessitam de tempo
de pior caso proporcional à altura da árvore, este limite proporcional a altura permite que
árvores rubro-negras sejam eficientes no pior caso, diferentemente de árvore de busca binária.
Wiikipédia

8
Árvore Rubro-negra

9
Árvore B
• Árvore B ou B-Tree é um tipo de árvores muito utilizado em
banco de dados e em sistemas de arquivos.
• Para inserir ou remover variáveis de um nó, o nó não poderá
ultrapassar sua ordem e nem ser menor que sua ordem
dividida por dois. Árvores B não precisam ser rebalanceadas
como são freqüentemente as árvores de busca binária com
Árvore AVL.
• Árvores B têm vantagens substanciais em relação a outros
tipos de implementações quanto ao tempo de acesso e
pesquisa aos nós.
• O criador das árvores B, Rudolf Bayer, não definiu claramente
de onde veio o B das árvores B. Ao que parece, o B vem de
balanceamento onde todos os nós folhas da árvore estão em
um mesmo nível. Também é possível que o B tenha vindo de
seu sobrenome Bayer, ou ainda do nome da empresa onde
trabalhava, a Boeing Scientific Research Labs.
10
Wiikipédia
Árvore B
DEFINIÇÃO
• Uma árvore B de ordem "m" (máximo de filhos para cada nó)
é uma árvore que atende as seguintes propriedades:
– Cada nó tem no máximo "m" filhos
– Cada nó (exceto a raíz e as folhas) tem pelo menos "m/2"
filhos
– A raiz tem pelo menos dois filhos se a mesma não for uma
folha
– Todas as folhas aparecem no mesmo nível e não carregam
informação
– Um nó não-folha com "k" filhos deve ter k-1 chaves

11
Árvore B

12
Fonte de Consulta
• Wikipédia (Estruturas de dados – Ávores)

13

Você também pode gostar