A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estruturas de Dados Arvores

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados Arvores"— Transcrição da apresentação:

1 Estruturas de Dados Arvores
Arvores Balanceadas Prof. Rosana

2 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.

3 Árvores Binárias

4 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..

5 Árvore AVL Árvore AVL (ou árvore balanceada pela altura) é uma árvore de busca binária auto-balanceada. Em tal árvore, as alturas das duas sub-árvores a partir de cada nó difere no máximo em uma unidade. As operações de busca, inserção e eliminação de elementos possuem complexidade O(logn) (no qual n é o número de elementos da árvore). Inserções e eliminações podem também requerer o rebalanceamento da árvore, exigindo uma ou mais rotações. O nome AVL vem de seus criadores Adelson Velsky e Landis, e sua primeira referência encontra-se no documento "Algoritmos para organização da informação" de 1962. Wiikipédia

6 Á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.

7 Á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[carece de fontes?] 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..[1] 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.

8 Á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

9 Árvore Rubro-negra

10 Á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. Wiikipédia

11 Á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

12 Árvore B

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


Carregar ppt "Estruturas de Dados Arvores"

Apresentações semelhantes


Anúncios Google