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

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

Pesquisas de Dados (Parte 2)

Apresentações semelhantes


Apresentação em tema: "Pesquisas de Dados (Parte 2)"— Transcrição da apresentação:

1 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) 25/03/2017 EDA - Prof. Paulemir Campos

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

3 EDA - Prof. Paulemir Campos
Árvores AVL 25/03/2017 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. 25/03/2017 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. 25/03/2017 EDA - Prof. Paulemir Campos

6 EDA - Prof. Paulemir Campos
Árvores AVL: Exemplo -1 1 1 -1 25/03/2017 EDA - Prof. Paulemir Campos

7 Árvores AVL: Contra-exemplo
Exemplo de Árvore não-AVL -1 1 1 -2 25/03/2017 EDA - Prof. Paulemir Campos

8 EDA - Prof. Paulemir Campos
Á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 } 25/03/2017 EDA - Prof. Paulemir Campos

9 EDA - Prof. Paulemir Campos
Árvores AVL: Balanceamento Exemplo de balanceamento por rotação esquerda. A C 1 -2 B C A E -1 -1 D E B D G 1 -1 F G F 25/03/2017 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 } 25/03/2017 EDA - Prof. Paulemir Campos

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

12 EDA - Prof. Paulemir Campos
Á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. 25/03/2017 EDA - Prof. Paulemir Campos

13 EDA - Prof. Paulemir Campos
Á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. 25/03/2017 EDA - Prof. Paulemir Campos

14 Árvores AVL: Balanceamento
Descrição das rotações nos seguintes casos: Diferença de altura do nó desbalanceado (hSE-hSD) Diferença de altura do nó filho do nó desbalanceado (hSE-hSD) Tipo de Rotação -1 Simples à esquerda -2 1 Dupla com filho à direita e pai à esquerda Dupla com filho à esquerda e pai à direita 2 Simples à direita 25/03/2017 EDA - Prof. Paulemir Campos

15 EDA - Prof. Paulemir Campos
Á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 25/03/2017 EDA - Prof. Paulemir Campos

16 EDA - Prof. Paulemir Campos
Á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 2 12 19 15 1 18 12 18 25/03/2017 EDA - Prof. Paulemir Campos

17 EDA - Prof. Paulemir Campos
Á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 19 25 15 20 -1 2 15 12 18 25 12 18 25/03/2017 EDA - Prof. Paulemir Campos

18 EDA - Prof. Paulemir Campos
Referências 25/03/2017 EDA - Prof. Paulemir Campos

19 EDA - Prof. Paulemir Campos
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. 25/03/2017 EDA - Prof. Paulemir Campos

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


Carregar ppt "Pesquisas de Dados (Parte 2)"

Apresentações semelhantes


Anúncios Google