1 / 20

Pesquisas de Dados (Parte 2)

UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir G. Campos. Pesquisas de Dados (Parte 2). Conteúdo. Árvores AVL Definição; Exemplo e contra-exemplo; Balanceamento; Exemplo de rotação dupla. Referências. Árvores AVL. Árvores AVL: Definição.

kibo-hebert
Download Presentation

Pesquisas de Dados (Parte 2)

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. UPE – Caruaru – Sistemas de InformaçãoDisciplina: Estrutura de Dados e ArquivoProf.: Paulemir G. Campos Pesquisas de Dados (Parte 2) EDA - Prof. Paulemir Campos

  2. Conteúdo • Árvores AVL • Definição; • Exemplo e contra-exemplo; • Balanceamento; • Exemplo de rotação dupla. • Referências EDA - Prof. Paulemir Campos

  3. Árvores AVL EDA - Prof. Paulemir Campos

  4. Árvores AVL: Definição • Árvore criada por Adelson-Velskii e Landis, daí o nome Árvore AVL; • É uma árvore de pesquisa binária balanceada cujo módulo da diferença entre as alturas das sub-árvores esquerda e direita de cada nó nunca é maior do que 1. EDA - Prof. Paulemir Campos

  5. Árvores AVL: Definição • Em outras palavras, o valor do balanceamento de cada nó de uma árvore AVL é igual a 1, 0 ou –1. • Caso contrário, a árvore binária não é AVL, pois estará desbalanceada. EDA - Prof. Paulemir Campos

  6. Árvores AVL: Exemplo -1 1 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 EDA - Prof. Paulemir Campos

  7. Árvores AVL: Contra-exemplo • Exemplo de Árvore não-AVL -1 1 0 0 0 1 -2 0 0 0 0 0 0 0 0 0 EDA - Prof. Paulemir Campos

  8. Árvores AVL: Balanceamento • Balanceamento de Árvore Binária por Rotação Esquerda: ponteiro tArvore GiraEsquerda (ponteiro tArvore raiz) { ponteiro tArvore novaRaiz novaRaiz = raiz->direito raiz->direito = novaRaiz->esquerdo novaRaiz->esquerdo = raiz retorna novaRaiz } EDA - Prof. Paulemir Campos

  9. Árvores AVL: Balanceamento • Exemplo de balanceamento por rotação esquerda. A C 1 -2 B C A E 0 -1 -1 0 D E B D G 1 -1 0 0 0 F G F 0 0 0 EDA - Prof. Paulemir Campos

  10. Árvores AVL: Balanceamento • Balanceamento de Árvore Binária por Rotação Direita: ponteiro tArvore GiraDireita (ponteiro tArvore raiz) { ponteiro tArvore novaRaiz novaRaiz = raiz->esquerdo raiz->esquerdo = novaRaiz->direito novaRaiz->direito = raiz retorna novaRaiz } EDA - Prof. Paulemir Campos

  11. Árvores AVL: Balanceamento • Exemplo de balanceamento por rotação direita. A B 2 -1 B C D A 0 0 1 1 D E F E C 1 -1 -1 0 0 F G G 0 0 0 EDA - Prof. Paulemir Campos

  12. Árvores AVL: Balanceamento • Características: • Quando se efetua uma rotação esquerda ou direita numa árvore de pesquisa binária, a ordem dos elementos percorrendo-a em ordem central não se altera. • Isto é, a árvore de pesquisa binária continua ordenada. EDA - Prof. Paulemir Campos

  13. Árvores AVL: Balanceamento • Características: • Árvore desbalanceada com valor negativo pode ser balanceada com rotação esquerda; • Árvore desbalanceada com valor positivo pode ser balanceada com rotação direita. EDA - Prof. Paulemir Campos

  14. Árvores AVL: Balanceamento • Descrição das rotações nos seguintes casos: EDA - Prof. Paulemir Campos

  15. Árvores AVL: Balanceamento Exemplo de Rotação Dupla • Dada a árvore de pesquisa binária ao lado, pede-se para balanceá-la aplicando operações de rotação à esquerda e/ou à direita conforme necessário. 20 15 25 12 19 18 EDA - Prof. Paulemir Campos

  16. Árvores AVL: Balanceamento Exemplo de Rotação Dupla • Primeiro aplica-se uma rotação à esquerda no nó 15 da árvore desbalanceada inicial. 20 20 2 2 15 25 19 25 -1 0 0 2 12 19 15 0 1 0 12 18 18 0 0 0 EDA - Prof. Paulemir Campos

  17. Árvores AVL: Balanceamento Exemplo de Rotação Dupla • Depois, basta aplicar uma rotação à direita no nó 20 da árvore obtida no passo anterior. 20 19 2 0 19 25 15 20 0 0 -1 2 15 18 25 12 0 0 0 0 12 18 0 0 EDA - Prof. Paulemir Campos

  18. Referências EDA - Prof. Paulemir Campos

  19. Referências • ASCENCIO, A. F. G; ARAÚJO, G. S. Estruturas de Dados: algoritmos, análise da complexidade e implementações em JAVA e C/C++. São Paulo: Pearson Prentice Hall, 2010. EDA - Prof. Paulemir Campos

  20. Referências • SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos. 2. ed. Rio de Janeiro: LTC, 1994. EDA - Prof. Paulemir Campos

More Related