18/1/2014eda - prof. paulemir campos1 pesquisas de dados (parte 2) upe – caruaru – sistemas de...
TRANSCRIPT
![Page 1: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/1.jpg)
11/04/23 EDA - Prof. Paulemir Campos 1
Pesquisas de Dados(Parte 2)
UPE – Caruaru – Sistemas de InformaçãoDisciplina: Estrutura de Dados e ArquivoProf.: Paulemir G. Campos
![Page 2: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/2.jpg)
11/04/23 EDA - Prof. Paulemir Campos 2
Conteúdo
Árvores AVL Definição; Exemplo e contra-exemplo; Balanceamento; Exemplo de rotação dupla.
Referências
![Page 3: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/3.jpg)
11/04/23 EDA - Prof. Paulemir Campos 3
Árvores AVL
![Page 4: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/4.jpg)
11/04/23 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.
![Page 5: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/5.jpg)
11/04/23 EDA - Prof. Paulemir Campos 5
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.
Árvores AVL: Definição
![Page 6: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/6.jpg)
11/04/23 EDA - Prof. Paulemir Campos 6
1
0
0
-1
0
0 0
1
0
0 0
0
0 0
-1
0 0
Árvores AVL: Exemplo
![Page 7: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/7.jpg)
11/04/23 EDA - Prof. Paulemir Campos 7
Exemplo de Árvore não-AVL
1
0
0
-1
0
0 0
1
0
0 0
0
0 0
-2
0
Árvores AVL: Contra-exemplo
![Page 8: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/8.jpg)
11/04/23 EDA - Prof. Paulemir Campos 8
Balanceamento de Árvore Binária por Rotação Esquerda:
ponteiro tArvore GiraEsquerda (ponteiro tArvore raiz) {
ponteiro tArvore novaRaiznovaRaiz = raiz->direitoraiz->direito = novaRaiz->esquerdonovaRaiz->esquerdo = raizretorna novaRaiz
}
Árvores AVL: Balanceamento
![Page 9: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/9.jpg)
11/04/23 EDA - Prof. Paulemir Campos 9
A
Árvores AVL: Balanceamento Exemplo de balanceamento por
rotação esquerda.
B
F G
C
D E
C
E
G
F
A
B D
-2
0
00
1 -1
0
1
-1
0 0
0
-1
0
![Page 10: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/10.jpg)
11/04/23 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 novaRaiznovaRaiz = raiz->esquerdoraiz->esquerdo = novaRaiz->direitonovaRaiz->direito = raizretorna novaRaiz
}
![Page 11: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/11.jpg)
11/04/23 EDA - Prof. Paulemir Campos 11
Árvores AVL: Balanceamento Exemplo de balanceamento por
rotação direita.
F G
B
D E
B
A
C
D
F
0
0
1 -1
0
-1
1
0
1
0E
-1
G0
A
C
2
0
![Page 12: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/12.jpg)
11/04/23 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.
![Page 13: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/13.jpg)
11/04/23 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.
![Page 14: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/14.jpg)
11/04/23 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 0 Simples à esquerda
1 Dupla com filho à direita e pai à
esquerda
-1 Dupla com filho à esquerda e pai à
direita
2 0 Simples à direita
1 Simples à direita
![Page 15: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/15.jpg)
11/04/23 EDA - Prof. Paulemir Campos 15
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
25
18
15
19
Árvores AVL: BalanceamentoExemplo de Rotação Dupla
12
![Page 16: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/16.jpg)
11/04/23 EDA - Prof. Paulemir Campos 16
Primeiro aplica-se uma rotação à esquerda no nó 15 da árvore desbalanceada inicial.
20
25
18
15
19
2
-1
1
0
0
20
25
18
19
15
2
2
0
0
0
120
120
Árvores AVL: BalanceamentoExemplo de Rotação Dupla
![Page 17: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/17.jpg)
11/04/23 EDA - Prof. Paulemir Campos 17
Depois, basta aplicar uma rotação à direita no nó 20 da árvore obtida no passo anterior.
19
20
18
15
0
0
0
-1
20
25
18
19
15
2
2
0
0
0
250
120
120
Árvores AVL: BalanceamentoExemplo de Rotação Dupla
![Page 18: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/18.jpg)
Referências
11/04/23 EDA - Prof. Paulemir Campos 18
![Page 19: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/19.jpg)
11/04/23 EDA - Prof. Paulemir Campos 19
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.
Referências
![Page 20: 18/1/2014EDA - Prof. Paulemir Campos1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.:](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc101497959413d8bd2ce/html5/thumbnails/20.jpg)
11/04/23 EDA - Prof. Paulemir Campos 20
SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos. 2. ed. Rio de Janeiro: LTC, 1994.
Referências