140 likes | 429 Views
Estruturas de Dados Arvores. Arvores Balanceadas Prof. Rosana. 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. Árvores Binárias.
E N D
Estruturas de DadosArvores ArvoresBalanceadas Prof. Rosana
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.
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..
Á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
Á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.
Á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(logn), 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.
Á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
Á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 BoeingScientificResearchLabs. 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
Fonte de Consulta • Wikipédia (Estruturas de dados – Ávores)