Árvores vla -...

113

Upload: others

Post on 16-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Letícia Rodrigues Bueno

2 de agosto de 2013

Page 2: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvores binárias de busca

I Objetivo: minimizar tempo de acesso no pior caso.

I Idéia: Para cada chave, separe as restantes em maiores oumenores.

I Estrutura hierárquica com divisão binária: uma árvore binária.

3

1 6

2 4 7

5

Page 3: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvores binárias de busca

I Objetivo: minimizar tempo de acesso no pior caso.I Idéia: Para cada chave, separe as restantes em maiores ou

menores.

I Estrutura hierárquica com divisão binária: uma árvore binária.

3

1 6

2 4 7

5

Page 4: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvores binárias de busca

I Objetivo: minimizar tempo de acesso no pior caso.I Idéia: Para cada chave, separe as restantes em maiores ou

menores.I Estrutura hierárquica com divisão binária: uma árvore binária.

3

1 6

2 4 7

5

Page 5: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvores binárias de busca

I Objetivo: minimizar tempo de acesso no pior caso.I Idéia: Para cada chave, separe as restantes em maiores ou

menores.I Estrutura hierárquica com divisão binária: uma árvore binária.

3

1 6

2 4 7

5

Page 6: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: complexidade da busca em árvore binária

I Busca em árvore binária = caminho da raiz até chave desejada(ou até uma folha, caso chave não exista).

3

1 6

2 4 7

5

h

I Pior caso: maior caminho da raiz até folha = altura da árvoreI Complexidade pior caso: O(h) (como otimizar pior caso?)

Page 7: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: complexidade da busca em árvore binária

I Busca em árvore binária = caminho da raiz até chave desejada(ou até uma folha, caso chave não exista).

3

1 6

2 4 7

5

h

I Pior caso: maior caminho da raiz até folha

= altura da árvoreI Complexidade pior caso: O(h) (como otimizar pior caso?)

Page 8: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: complexidade da busca em árvore binária

I Busca em árvore binária = caminho da raiz até chave desejada(ou até uma folha, caso chave não exista).

3

1 6

2 4 7

5

h

I Pior caso: maior caminho da raiz até folha = altura da árvore

I Complexidade pior caso: O(h) (como otimizar pior caso?)

Page 9: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: complexidade da busca em árvore binária

I Busca em árvore binária = caminho da raiz até chave desejada(ou até uma folha, caso chave não exista).

3

1 6

2 4 7

5

h

I Pior caso: maior caminho da raiz até folha = altura da árvoreI Complexidade pior caso: O(h)

(como otimizar pior caso?)

Page 10: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: complexidade da busca em árvore binária

I Busca em árvore binária = caminho da raiz até chave desejada(ou até uma folha, caso chave não exista).

3

1 6

2 4 7

5

h

I Pior caso: maior caminho da raiz até folha = altura da árvoreI Complexidade pior caso: O(h) (como otimizar pior caso?)

Page 11: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvore binária de busca ótima

I Árvore ótima: minimiza tempo de busca (no pior caso)

I Árvore completa, altura: h = blog nc+ 1

4

2 6

3 5 71

I complexidade temporal no pior caso: O(log n)

Page 12: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvore binária de busca ótima

I Árvore ótima: minimiza tempo de busca (no pior caso)I Árvore completa, altura: h = blog nc+ 1

4

2 6

3 5 71

I complexidade temporal no pior caso: O(log n)

Page 13: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: árvore binária de busca ótima

I Árvore ótima: minimiza tempo de busca (no pior caso)I Árvore completa, altura: h = blog nc+ 1

4

2 6

3 5 71

I complexidade temporal no pior caso: O(log n)

Page 14: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: construção de árvore ótima

I após inserções, árvore binária de busca pode degenerar emuma lista

1

5

2

3

4

7

6

I tempo de busca pior caso: O(n)

Page 15: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Relembrando: construção de árvore ótima

I Estrutura �xa: chaves pré-determinadas.

I Dado um conjunto com n chaves, é possível construir a árvoreótima em tempo O(n3) (ou O(n2) se usarmos um algoritmomais elaborado).

I Para manter a árvore ótima, deveríamos executar o algoritmo acada inserção: impraticável!

I Podemos manter complexidade de pior caso da inserção emO(log n)?

Page 16: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(. . .)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 17: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 18: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso O(. . .)

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 19: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso O(log n)

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 20: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso O(log n)

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 21: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso O(log n)

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 22: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores �su�cientemente boas�

I Árvore com altura 2 log n, complexidade temporal no pior casoO(log n)

I Árvore com altura c1 log n + c2, complexidade temporal no piorcaso O(log n)

I Nem toda árvore com altura O(log n) é ótima, mas acomplexidade assintótica temporal de pior caso para a busca éigual à de uma árvore ótima.

De�nição: Árvore binária balanceada é aquela com altura O(log n)

Mais fácil de construir que árvore ótima?Como garantir que uma árvore binária é balanceada?

Page 23: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Para cada nó x , de�na:I hE (x): altura sub-árvore à esquerdaI hD(x): altura sub-árvore à direita

hE hD

I Propriedade AVL: |hE (x)− hD(x)| ≤ 1I Nó regulado: satisfaz propriedade AVL.I Árvore AVL: todos nós regulados.

(Curiosidade: AVL = Adelson-Velskii, G. e Landis, E. M.)

Page 24: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Para cada nó x , de�na:I hE (x): altura sub-árvore à esquerdaI hD(x): altura sub-árvore à direita

hE hD

I Propriedade AVL: |hE (x)− hD(x)| ≤ 1

I Nó regulado: satisfaz propriedade AVL.I Árvore AVL: todos nós regulados.

(Curiosidade: AVL = Adelson-Velskii, G. e Landis, E. M.)

Page 25: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Para cada nó x , de�na:I hE (x): altura sub-árvore à esquerdaI hD(x): altura sub-árvore à direita

hE hD

I Propriedade AVL: |hE (x)− hD(x)| ≤ 1I Nó regulado: satisfaz propriedade AVL.

I Árvore AVL: todos nós regulados.

(Curiosidade: AVL = Adelson-Velskii, G. e Landis, E. M.)

Page 26: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Para cada nó x , de�na:I hE (x): altura sub-árvore à esquerdaI hD(x): altura sub-árvore à direita

hE hD

I Propriedade AVL: |hE (x)− hD(x)| ≤ 1I Nó regulado: satisfaz propriedade AVL.I Árvore AVL: todos nós regulados.

(Curiosidade: AVL = Adelson-Velskii, G. e Landis, E. M.)

Page 27: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL

Para cada nó x , de�na:I hE (x): altura sub-árvore à esquerdaI hD(x): altura sub-árvore à direita

hE hD

I Propriedade AVL: |hE (x)− hD(x)| ≤ 1I Nó regulado: satisfaz propriedade AVL.I Árvore AVL: todos nós regulados.

(Curiosidade: AVL = Adelson-Velskii, G. e Landis, E. M.)

Page 28: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo

3

1 6

2 4 7

5

3

1 6

2 4

5

AVL NÃO AVL

Page 29: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: inserção

Queremos inserir nova chave:I mantendo a regulagem de todos os nósI em tempo razoável

Nossa estratégia:

1. Inserção como árvore binária comum.

2. veri�car se existem nós desregulados.

3. se existem, tornar os nós regulados.

Page 30: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: inserção

Queremos inserir nova chave:I mantendo a regulagem de todos os nósI em tempo razoável

Nossa estratégia:

1. Inserção como árvore binária comum.

2. veri�car se existem nós desregulados.

3. se existem, tornar os nós regulados.

Page 31: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: inserção

Queremos inserir nova chave:I mantendo a regulagem de todos os nósI em tempo razoável

Nossa estratégia:

1. Inserção como árvore binária comum.

2. veri�car se existem nós desregulados.

3. se existem, tornar os nós regulados.

Page 32: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: inserção

Queremos inserir nova chave:I mantendo a regulagem de todos os nósI em tempo razoável

Nossa estratégia:

1. Inserção como árvore binária comum.

2. veri�car se existem nós desregulados.

3. se existem, tornar os nós regulados.

Page 33: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 1 na árvore abaixo.

10

6 15

1773

42

Page 34: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 1 na árvore abaixo.

10

6 15

1773

42

1

Page 35: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 1 na árvore abaixo.

10

6 15

1773

42

1

Page 36: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 1 na árvore abaixo.

10

3 15

1762

41 7

Page 37: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 5 na árvore abaixo.

10

6 15

1773

42

Page 38: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 5 na árvore abaixo.

10

6 15

1773

42

5

Page 39: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 5 na árvore abaixo.

10

6 15

1773

42

5

Page 40: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir chave com valor 5 na árvore abaixo.

10

4 15

1763

2 75

Page 41: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.

Nó inserido: q

I somente sub-árvores que contém q aumentaram alturaI os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 42: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.Nó inserido: q

I somente sub-árvores que contém q aumentaram altura

I os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 43: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.Nó inserido: q

I somente sub-árvores que contém q aumentaram alturaI os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 44: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.Nó inserido: q

I somente sub-árvores que contém q aumentaram alturaI os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 45: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.Nó inserido: q

I somente sub-árvores que contém q aumentaram alturaI os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 46: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

Generalizando os casos anteriores.Nó inserido: q

I somente sub-árvores que contém q aumentaram alturaI os nós que �caram desregulados são todos ancestrais de q

Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore esquerda de p

I hE (p) > hD(p)

q

p

Page 47: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I .

q

p

Page 48: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I .

p

u

Page 49: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I Se hE (u) > hD(u)

p

T1

T2

T3

u

Page 50: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I Se hE (u) > hD(u)

u

T3T2T1

p

Rotação à direita

Page 51: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I Se hE (u) < hD(u)

p

u

Page 52: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I Se hE (u) < hD(u)

p

u

q

T1

T2 T3

T4

Page 53: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hE (p) > hD(p)

I Se hE (u) < hD(u)

q

u p

T1 T2 T3 T4

Rotação dupla à direita

Page 54: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

E se o nó inserido estiver à direita do nó desregulado?

Inserir 20 na árvore abaixo:

10

6 15

1773

42

Page 55: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

E se o nó inserido estiver à direita do nó desregulado?Inserir 20 na árvore abaixo:

10

6 15

1773

42 20

Page 56: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

E se o nó inserido estiver à direita do nó desregulado?Inserir 20 na árvore abaixo:

10

6 15

1773

42 20

Page 57: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

E se o nó inserido estiver à direita do nó desregulado?Inserir 20 na árvore abaixo:

10

6 17

2073

42

15

Page 58: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir 16 na árvore abaixo:

10

6 15

1773

42

Page 59: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir 16 na árvore abaixo:

10

6 15

1773

42 16

Page 60: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir 16 na árvore abaixo:

10

6 15

1773

42 16

Page 61: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: exemplo de inserção

Inserir 16 na árvore abaixo:

10

6 16

1773

42

15

Page 62: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

Generalizando os dois casos anteriores.Nó inserido q.Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore direita de p

I hD(p) > hE (p)

q

p

Page 63: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

Generalizando os dois casos anteriores.Nó inserido q.Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore direita de p

I hD(p) > hE (p)

q

p

Page 64: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

Generalizando os dois casos anteriores.Nó inserido q.Seja p o ancestral de q desregulado mais próximo de q.

I q foi inserido na sub-árvore direita de p

I hD(p) > hE (p)

q

p

Page 65: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I .

q

p

Page 66: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I .

p

u

Page 67: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I Se hE (u) < hD(u)

p

T3

T2

T1

u

Page 68: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I Se hE (u) < hD(u)

u

T1 T2 T3

p

Rotação à esquerda

Page 69: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I Se hE (u) > hD(u)

p

u

Page 70: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I Se hE (u) > hD(u)

p

u

q

T4

T3T2

T1

Page 71: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem dos nós

I hD(p) > hE (p)

I Se hE (u) > hD(u)

q

up

T4T3T2T1

Rotação dupla à esquerda

Page 72: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)

I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 73: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direita

I Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 74: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 75: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)

I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 76: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerda

I Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 77: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 78: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).

Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 79: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)

Regular p torna a árvore AVL. Por quê?

Page 80: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: regulagem de nós

q nó inserido, p ancestral desregulado, u �lho de p na mesmasubárvore de q.Resumo dos casos:

I Caso 1: hE (p) > hD(p)I Caso 1.1: hE (u) > hD(u)⇒ rotação direitaI Caso 1.2: hE (u) < hD(u)⇒ rotação dupla direita

I Caso 2: hE (p) < hD(p)I Caso 2.1: hE (u) < hD(u)⇒ rotação esquerdaI Caso 1.2: hE (u) > hD(u)⇒ rotação dupla esquerda

Operação de rotação: O(1) (ajustar ponteiros p.esq, p.dir , u.esq,u.dir).Encontrar p: O(log n) (caminhar de q na direção da raiz)Regular p torna a árvore AVL. Por quê?

Page 81: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: algoritmo para inserção

InsereAVL(no, chave)

if chave < no ↑ .chave thenif no ↑ .ptesq 6= λ thenInsereAVL(no ↑ .ptesq, chave)

elseno ↑ .ptesq = NovoNó(chave)

else {chave > no ↑ .chave}. . .

Page 82: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: algoritmo para inserção

InsereAVL(no, chave)if chave < no ↑ .chave then

if no ↑ .ptesq 6= λ thenInsereAVL(no ↑ .ptesq, chave)

elseno ↑ .ptesq = NovoNó(chave)

else {chave > no ↑ .chave}. . .

Page 83: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: algoritmo para inserção

InsereAVL(no, chave)if chave < no ↑ .chave thenif no ↑ .ptesq 6= λ thenInsereAVL(no ↑ .ptesq, chave)

elseno ↑ .ptesq = NovoNó(chave)

else {chave > no ↑ .chave}. . .

Page 84: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: algoritmo para inserção

InsereAVL(no, chave)if chave < no ↑ .chave thenif no ↑ .ptesq 6= λ thenInsereAVL(no ↑ .ptesq, chave)

elseno ↑ .ptesq = NovoNó(chave)

else {chave > no ↑ .chave}. . .

Page 85: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: algoritmo para inserção

InsereAVL(no, chave)if chave < no ↑ .chave thenif no ↑ .ptesq 6= λ thenInsereAVL(no ↑ .ptesq, chave)if hE (no) > hD(no) + 1 then {Caso 1}

u ← no ↑ .ptesqif hE (u) > hD(u) + 1 then {Caso 1.1}RotaçãoDireita(no, u)

else {Caso 1.2}v ← u ↑ .ptdirRotaçãoDuplaDireita(no, u, v)

. . .else

no ↑ .ptesq = NovoNó(chave)

Page 86: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).

I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balanço

de cada nó: bal := hD − hE .I A cada inserção, atualizo o balanço dos ancestrais de q. Se

algum balanço tornar-se −2 ou 2, faço as rotações apropriadas.I Um novo nó tem balanço 0.

Page 87: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.

I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balanço

de cada nó: bal := hD − hE .I A cada inserção, atualizo o balanço dos ancestrais de q. Se

algum balanço tornar-se −2 ou 2, faço as rotações apropriadas.I Um novo nó tem balanço 0.

Page 88: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!

I Na verdade, não preciso saber exatamente hE e hD , masapenas se um nó está desregulado e qual subárvore é a maior.

I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balançode cada nó: bal := hD − hE .

I A cada inserção, atualizo o balanço dos ancestrais de q. Sealgum balanço tornar-se −2 ou 2, faço as rotações apropriadas.

I Um novo nó tem balanço 0.

Page 89: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.

I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balançode cada nó: bal := hD − hE .

I A cada inserção, atualizo o balanço dos ancestrais de q. Sealgum balanço tornar-se −2 ou 2, faço as rotações apropriadas.

I Um novo nó tem balanço 0.

Page 90: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balanço

de cada nó: bal := hD − hE .

I A cada inserção, atualizo o balanço dos ancestrais de q. Sealgum balanço tornar-se −2 ou 2, faço as rotações apropriadas.

I Um novo nó tem balanço 0.

Page 91: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balanço

de cada nó: bal := hD − hE .I A cada inserção, atualizo o balanço dos ancestrais de q. Se

algum balanço tornar-se −2 ou 2, faço as rotações apropriadas.

I Um novo nó tem balanço 0.

Page 92: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

I O cálculo de hE e hD demanda tempo O(log n).I Esse cálculo é feito uma vez para cada nó entre q e a raiz.I Número de operações: O(log n log n) excede o desejado!I Na verdade, não preciso saber exatamente hE e hD , mas

apenas se um nó está desregulado e qual subárvore é a maior.I Uso de um campo bal ∈ {−1, 0, 1} para armazenar o balanço

de cada nó: bal := hD − hE .I A cada inserção, atualizo o balanço dos ancestrais de q. Se

algum balanço tornar-se −2 ou 2, faço as rotações apropriadas.I Um novo nó tem balanço 0.

Page 93: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

10

6 15

1773

42 00

000

-1 1

-1

Page 94: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

10

6 15

1773

42

1

0-1

00-1

-2 1

-2

0

Page 95: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

10

6 15

1773

42

1

0-1

00-1

-2 1

-2

0

Page 96: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: Detalhes de implementação

10

3 15

1762

41 70

00-1

0 1

-1

0 0

Page 97: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

1. faça a remoção como na árvore de busca binária: O(log n)

2. se outro nó ocupar o lugar do nó removido, atualize osbalanços desde o pai desse nó até a posição atual do nó:O(log n)

3. percorra o caminho desde o pai do nó removido até a raiz,fazendo as operações de rotação aprorpiadas (pode ser mais deuma): O(log n)

Total: O(log n).

Page 98: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

1. faça a remoção como na árvore de busca binária: O(log n)

2. se outro nó ocupar o lugar do nó removido, atualize osbalanços desde o pai desse nó até a posição atual do nó:O(log n)

3. percorra o caminho desde o pai do nó removido até a raiz,fazendo as operações de rotação aprorpiadas (pode ser mais deuma): O(log n)

Total: O(log n).

Page 99: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

1. faça a remoção como na árvore de busca binária: O(log n)

2. se outro nó ocupar o lugar do nó removido, atualize osbalanços desde o pai desse nó até a posição atual do nó:O(log n)

3. percorra o caminho desde o pai do nó removido até a raiz,fazendo as operações de rotação aprorpiadas (pode ser mais deuma): O(log n)

Total: O(log n).

Page 100: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

1. faça a remoção como na árvore de busca binária: O(log n)

2. se outro nó ocupar o lugar do nó removido, atualize osbalanços desde o pai desse nó até a posição atual do nó:O(log n)

3. percorra o caminho desde o pai do nó removido até a raiz,fazendo as operações de rotação aprorpiadas (pode ser mais deuma): O(log n)

Total: O(log n).

Page 101: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

10

5 17

197

4

15

20

3

13 16

12

Page 102: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

10

5 17

197

4

15

20

3

13 16

12

Page 103: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

10

5 17

19

4

15

20

3

13 16

12

Page 104: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

10

4 17

195 15

20

3

13 16

12

Page 105: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

10

4 17

195 15

20

3

13 16

12

Page 106: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Árvores AVL: remoção

15

10 17

1913 16

20

4

3 5 12

Page 107: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.I Árvores balanceadas são muito usadas na vida real: ex.

TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 108: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.

I Árvores balanceadas são muito usadas na vida real: ex.TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 109: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.I Árvores balanceadas são muito usadas na vida real: ex.

TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 110: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.I Árvores balanceadas são muito usadas na vida real: ex.

TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.

I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 111: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.I Árvores balanceadas são muito usadas na vida real: ex.

TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 112: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Conclusão

I Árvore binária de busca ótima: inserções/remoções não sãoviáveis.

I Árvore binária balanceada: alternativa su�cientemente boa.I Árvores balanceadas são muito usadas na vida real: ex.

TreeMap e TreeSet do Java.util. Em C++, Map e Set doSTL.

I Árvore AVL: tipo de árvore balanceada.I Busca, inserção, remoção em árvore AVL: O(log n).

Próxima aula: mais árvores balanceadas � Árvores vermelho-pretas(red-black trees).

Page 113: Árvores VLA - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/avl.pdf · Árvores su cientemente boas I Árvore com altura 2log n , complexidade

Bibliogra�a Utilizada

SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados e seus

Algoritmos, LTC, 1994.