1 / 6

TAD – Árvore AVL

TAD – Árvore AVL. ATAI. Árvore AVL.

todd
Download Presentation

TAD – Árvore AVL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TAD – Árvore AVL ATAI

  2. Árvore AVL As Árvores Binárias de Pesquisa têm uma séria desvantagem que pode afectar o tempo necessário para recuperar um item armazenado. A desvantagem é que a estrutura da árvore depende da ordem em que os elementos são inseridos. Sabemos que se inserirmos os elementos já em ordem, a estrutura da árvore será igual a de uma lista encadeada e o tempo médio para recuperar uma informação da árvore aumenta. A procura é mais rápida na árvore binária de pesquisa equilibrada/balanceada. Árvore AVL é uma árvore binária de pesquisa equilibrada em altura. Para cada nó da árvore as alturas das respectivas subárvores esquerda e direita diferem apenas em um.

  3. Árvore AVL - factor de equilíbrio Para manter o equilíbrio da árvore guardamos em cada nó um “factor de equilíbrio”, designado por balance (bal) do tipo inteiro. bal = altura (right) - altura (left) Como estes duas alturas diferem de pelo menos em 1, o valor de bal deve ser -1, 0 ou +1. As operações são iguais à da árvore binária de pesquisa. Só as operações de insert and deletekey devem ser modificados. Elas devem manter o equilíbrio da árvore.

  4. Árvore AVL - operação insert • Insert determina a localização do novo elemento e adiciona-o. • Durante a operação insert permitimos temporariamente que o valor de bal possa ser -2 e +2. • Quando isto acontece, a árvore deixa de estar equilibrada, sendo necessário uma ou duas rotações para a equilibrar de novo. • Distinguimos entre rotações simples e duplas. As rotações simples diferem entre rotação esquerda e rotação direita.

  5. Árvore AVL - operação insert 1. Adicionar o nó como em árvore binária de pesquisa. O caminho para este nó é o caminho de pesquisa. 2. Subir no caminho de pesquisa actualizando os valores do bal dos nós, até encontrar um nó não balanceado mais perto do novo nó ( tem o valor do bal +2 ou -2). Chamar este nó o eixo. 3. A. Se não existir o eixo, a árvore continua a ser árvore AVL e podemos acabar a operação de inserção actualizando os valores do bal de todos os nós do caminho de pesquisa. B. Se o eixo existe, então para manter a árvore AVL devemos efectuar rotação (direita, esquerda ou dupla) de modo que os valores do bal fiquem correctos e a árvore é uma árvore AVL.

  6. Árvore AVL - Tipos de rotações Que tipo de rotação devemos fazer? • Se o bal do eixo é negativo (sub-árvore esquerda é mais comprida), então se o bal do nó seguinte do caminho de pesquisa é negativo, então rotação para direita, se não (o bal é positivo), então rotação dupla (esquerda-direita) • Se o bal do eixo é positivo (sub-árvore direita é mais comprida), então se o bal do nó seguinte do caminho de pesquisa é positivo, então rotação para esquerda, se não (o bal é negativo), então rotação dupla (direita-esquerda)

More Related