18/1/2014eda - prof. paulemir campos1 pesquisas de dados (parte 2) upe – caruaru – sistemas de...

20
22/06/22 EDA - Prof. Paulemir Campos 1 Pesquisas de Dados (Parte 2) UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir G. Campos

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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.:

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